Обновить выпадающий список, когда значение выбрано для другого - PullRequest
0 голосов
/ 06 ноября 2019

В моем коде есть два выпадающих списка из "Reaction-native-material-dropdown". Первый заполняется в начале, а второй должен быть заполнен (из выборки данных json), когда элемент выбран в первом раскрывающемся списке.

Это все, что я написал до сих пор:

...
import { Dropdown } from 'react-native-material-dropdown';

export default class Example extends Component {

  render() {
    let firstValues = [{
      value: 'AAA',
    }, {
      value: 'BBB',
    }, {
      value: 'CCC',
    }];

    return (
        <View>
          <Dropdown
            label='First'
            data={firstValues}
            onChangeText={(value)=>{
              fetch("...")
              .then(response => response.json())
              .then((responseJson)=> {
                var count = Object.keys(responseJson.myJson).length;
                let secondValues = [];
                for(var i=0;i<count;i++){
                  secondValues.push({ value: responseJson.myJson[i].name });
                }
                this.setState({ secondValues });
              })
              .catch((error) => {
                alert('Error');
              });
            }}
          />
          <Dropdown
            label='Second'
            data={this.secondValues}
          />
        </View>
    )
  }
}
...

Проблема в том, что второй выпадающий список никогда не обновляется и всегда пуст. Я все еще начинающий, поэтому любая помощь будет оценена. Спасибо.

1 Ответ

0 голосов
/ 07 ноября 2019

Во втором DropDown вы неправильно получаете значение состояния

Измените это

<Dropdown
  label='Second'
  data={this.secondValues}
/>

на

<Dropdown
  label='Second'
  data={this.state.secondValues}
/>
...