Как я могу использовать JSON Child в плоский список? - PullRequest
1 голос
/ 10 июля 2019

Я хочу показать некоторые данные, такие как дата, время, ... и продукты (имя, тип, цена). Теперь я ничего не вижу, когда использую 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:

 <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

...