【问题标题】:react native- json parsing (cant parse json object in my code)react native-json 解析(无法在我的代码中解析 json 对象)
【发布时间】:2018-10-15 07:35:10
【问题描述】:

这是我的代码。在这个我得到了 x 但是当我尝试解析 x 以获取 x 'isloggedin' 的对象时它给出了错误。如果你理解我的问题,我应该做错什么告诉我。

componentDidMount() {
    this.onLoad();
  }
 onLoad = async () => {
    try {
        var walletdata = await AsyncStorage.getItem('wallet');
        this.setState({x: JSON.parse(walletdata)})
        this.setState({y: JSON.stringify(this.state.x)})
        console.log("output:  "+ this.state.y);
        console.log("output y:"+JSON.parse(this.state.y.isloggedIn));
      }catch(error){
        console.log("error: "+error);
      }
  }

错误:SyntaxError:JSON 解析错误:意外标识符“未定义”

【问题讨论】:

    标签: json react-native asyncstorage


    【解决方案1】:

    可能是因为“钱包”密钥在缓存存储中具有未定义的值。您应该首先检查值(在从存储中获取项目之后),如果它未定义,那么您必须先设置它。

    【讨论】:

      【解决方案2】:

      可能您需要等待第一个 setState 函数完成,以便您可以在第二次调用时访问它。

      简而言之,在状态中设置您的值需要一些时间,并且您在更新状态之前尝试访问它。所以尝试访问 setState 函数回调中的值。

      取而代之的是,

      this.setState({x: JSON.parse(walletdata)})
      this.setState({y: JSON.stringify(this.state.x)})
      console.log("output:  "+ this.state.y);
      console.log("output y:"+JSON.parse(this.state.y.isloggedIn));
      

      你可以用这个:

      this.setState({x: JSON.parse(walletdata),y: JSON.stringify(walletdata.x)},()=>{
              console.log("output:  "+ this.state.y);
              console.log("output y:"+JSON.parse(this.state.y.isloggedIn));
      });
      

      【讨论】:

        【解决方案3】:

        我已经解决了我的问题。谢谢您的回答。下面是我如何解决我的问题。

         try {
                    var walletdata = await AsyncStorage.getItem('wallet');
                    this.setState({wallet: JSON.stringify(JSON.parse(walletdata))})                
                    this.setState({isLoggedin:JSON.parse 
                         (this.state.wallet).isLoggedin});
                    console.log(this.state.isLoggedin);
                }catch(error){
                    console.log("error: "+error);
                }
        

        【讨论】:

          猜你喜欢
          • 2020-09-17
          • 2017-10-21
          • 2017-02-12
          • 2015-01-15
          • 2017-10-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-25
          相关资源
          最近更新 更多