首页 > 解决方案 > 如何映射json数据(不是for循环)?

问题描述

这是我的 Json 数据:

data = {
   "what would you like to have?": {
      "susi":0,
      "rice":0,
      "noodles":0,
      "manchurian":0
   },
   "what you will have in breakfast?": {
      "Idli":0,
      "dosa":0
   }
}
componentDidMount() {
let newPost;
      var id='-M6YIRfep3uFjaEv4fzL';
      const db=   firebase.database();
      const events =db.ref().child('PG');
      var query= events.orderByKey().equalTo(id);
      query.once("value",(snapshot)=>{
           newPost=snapshot.val();  
           const keys = Object.keys(newPost);
           for (let data of keys) {
             const keys = Object.keys(newPost[data].poll);
               console.warn(newPost[data].poll);
               for(let k1 of keys)
               {
                  //console.warn(k1);
                  const keys2 = Object.keys(newPost[data].poll[k1]);
                  this.setState({
                    data1:newPost[data].poll[k1]
                     })
}
}
 render() {
    return (
      <ScrollView>
        <View style={{flex: 1, backgroundColor: '#fff'}}>
          <View
            style={{
              width: 410,
              height: 600,
              backgroundColor: 'white',
              alignContent: 'center',
            }}>
  {
                  this.state.data1.map((item,keys)=>(
                    // item[keys].map((items,key)=>{

                      <Text>{item[keys]}</Text>

                   //})
                 ))
                }
  </View>
    );
  }
}

我如何在迭代 for 循环时映射这些数据,它正在工作,但是当我使用 map 函数时,它显示 undefined is not an object (evaluation object.keys(this.state.data )) in react native 的错误。我正在获取 data1 变量,因为我警告 data1 警告 data1 。但不渲染数据

标签: jsonreact-native

解决方案


推荐阅读