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

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

Вот мой код фрагмента

export default class App extends React.Component {
  constructor(props){
        super(props);
        this.state ={
            branches: [],
        }
    }
  componentDidMount(){
    fetch('someURL', {
            method: 'GET',
        })
      .then((response) => response.json())
      .then((responseJson) => {
          this.setState({
          cabang: responseJson.data,
          loading: true,
          })
          responseJson.forEach((item)=>{
          this.state.cabang.push({
           branch_id:item.branch_id,
           name: item.name,
           address: item.address,
          })
          })
          branches.map((items)=>{console.log(item.name)})
          console.log(responseJson);
          return responseJson;
      })
        .catch(error=>{
            console.log(error);
        });
    }
  render() 
  {
    const branchesName = this.state.branches.map((item, branch_id)=> {
      return(
        <Text>{item.name}</Text>)
    });
    const branchesPicker = this.state.branches.map((item, branch_id)=> {
      return(
            <Picker.Item
            label={item.name}
            value={item.name}
            key={this._keyExtractor}/>
        )
    });
    return (
      <Text>{branchesName}</Text>
      <Picker selectedValue={this.state.branches.name}
          mode="dropdown"
          style={{ height: 50, justifyContent: 'space-around', flex:4, alignItems: 'stretch', }}
          onValueChange={(item, branch_id)=> this.setState({name: item})}>
      {branchesPicker}
      </Picker>
    );
  }
}

Я пробовал этот код, но результатпоказывает все данные из массива, а не по одному.Я так застрял, чтобы найти способ отображать его один за другим в соответствии с выбранным сборщиком ... Может кто-нибудь, пожалуйста, помогите мне ??

Спасибо большое ..

1 Ответ

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

В вашем методе рендеринга вы отображаете список массивов и возвращаете массив из <Text> элементов.

const branchesName = this.state.branches.map((item, branch_id)=> { return( <Text>{item.name}</Text>) });

Если вы просто хотите показать выбранный массивэлемент, вы можете изменить (в вашем методе рендеринга)

<Text>{branchesName}</Text>

на

<Text>{this.state.name}</Text>

Это потому, что в элементе выбора,всякий раз, когда вы меняете выбранный инструмент выбора, вы присваиваете его состоянию компонента под именем свойства.

...