не удалось получить массив данных в реагировать родной - PullRequest
0 голосов
/ 09 октября 2018

Я использую встроенную CRNA для своих приложений, и у меня возникают проблемы с загрузкой массива данных из API.

Это мой код:

constructor(props){
    super(props);
    this.state ={
        branches: [],
        loading: false,
    }
}


componentDidMount() {
    fetch('APIurl', {
            method: 'GET',
        })
      .then((response) => response.json())
      .then((responseJson) => {
          this.setState({
          branches: responseJson.data,
          loading: true,
          })
          console.log(responseJson);
          return responseJson;
      })
        .catch(error=>{
            console.log(error);
        });
    }
}
  render(){
    return(
       <Text style={{margin: 2, alignItems: 'stretch', 
                 flex:1, fontWeight: 'bold'}}> 
       {this.state.branches.name}</Text>
       <Text style={{margin: 2, justifyContent: 'space- 
         around', alignItems: 'stretch', flex:2,}}> 
       {this.state.branches.address}</Text>
      <Picker
       selectedValue={this.state.branches.name}
       mode="dropdown"
       style={{ height: 50, justifyContent: 'space- 
       around', flex:4, alignItems: 'stretch', }}
        onValueChange={(itemValue, itemIndex)=> 
      this.setState({branches: key})}>
        {this.state.branches.map((branches, key)=> (
        <Picker.Item label={branches.name} value={branches.name} key= 
       {branches.branch_id}/>)
        )}
     </Picker>
      <View style={{flex: 5, flexDirection:'column', alignItems: 'stretch',justifyContent: 'space-around'}}>
          <Button
            title="GO"
            titleStyle={{ fontWeight: "700" }}
            buttonStyle={{
            backgroundColor: "#5eac1a",
            width: 250,
            height: 45,
            borderColor: "transparent",
            borderWidth: 0,
            borderRadius: 25
            }}
           />);
         }
     }

Код не показывает никаких ошибок, когда я пытался его запустить.Но он ничего не показывает, как будто он не мог получить данные из API.Кто-нибудь может мне помочь, пожалуйста!Огромное спасибо ..

РЕДАКТИРОВАТЬ: он не показывает никакой ошибки, но вместо этого предупреждение.

Каждый дочерний элемент в массиве или итератор должен иметь уникальный ключ "ключ".

1 Ответ

0 голосов
/ 09 октября 2018

Внутри responsejson вы можете сделать что-то вроде этого.

responsejson.forEach((item)=>{

this.state.branches.push({
 branchid:item.branch_id

})


})
  • этот branch_id относится к типу данных json.
...