如何在平面清单中使用json child?

时间:2019-07-10 09:21:01

标签: react-native react-native-flatlist

我想显示一些数据,例如日期,时间,...和产品(名称,类型,价格)。现在,我在item.product.name中使用flatlist时什么也看不到。 如何显示产品名称?

(平面列表需要对象,因此我通过Object.values(responseJson)将数据更改为对象)

componentDidMount(){

    fetch('https://example.com/',{
      method:'POST',
      headers:{
        'Accept':'application/json',
        'Content-type':'application/json'
      },
      body:JSON.stringify({
        username:this.state.username,
        orderid:this.state.orderid,
      })
    }).then((response)=>response.json()).
    then((responseJson)=>{
      if(responseJson === "none"){
        this.setState({
        noneorder:true,
        });
      }else {
        this.setState({
          dataSource:Object.values(responseJson),
        });
      }
    }).catch((error)=>console.error(error));

  }

Json(更改为对象之前):

{"20":{"id":"20","date":"12/11","time":"18:29:59","products":"{\"164\":{\"id\":\"164\",\"name\":\"\\u067e\\u06cc\\u0631\\u0627\\u0647\\u0646\",\"type\":\"\\u0627\\u062a\\u0648\",\"product\":\"1\",\"count\":\"1\",\"price\":3500}}","sum":"3500","status":"paid"}}

平面列表:

 <FlatList
      data={this.state.dataSource}
      keyExtractor={(item, index) => item.id}
      renderItem={({item}) =>
      <View>
           <Text>{item.date}</Text>
           <Text>{item.products.name}</Text>
      </View>
      }
 />

结果为: 12/11 ,但应为 12/11 mynameofproduct

0 个答案:

没有答案