Я новичок в React Native и у меня возникли проблемы с заполнением опций выпадающего меню.
Прежде чем вы скажете, что это дублирующий вопрос - вот ссылка на вопрос, который Спросили 3 года go, где они обсуждали, как заполнить раскрывающийся список, используя массивы и списки.
Я использую карту, которая представляет собой структуру данных, введенную в JS в ES6.
Я использую Picker для раскрывающегося списка.
Я заполняю карту с именем branchData данными, полученными с помощью REST API.
вот мой код для заполнения раскрывающегося списка:
<Picker
selectedValue={this.state.branch}
style={styles.fieldPicker}
mode="dropdown"
onValueChange={(itemValue, itemIndex) =>
this.setState({branch: itemValue})
}>
{/* Data Binding */}
{this.state.branchData.forEach((name, id) =>
{
return <Picker.Item key={id} value={id} label={name} />;
})
}
</Picker>
Я проверил правильность доступа к имени и идентификатору, войдя в него по нажатию кнопки.
Проблема заключается в том, что я не могу видеть, как выпадающий список заполняется, все см. просто нажатие вниз, которое ничего не делает.
Ранее я вручную добавил два элемента выбора и смог видеть их при нажатии.
ОБНОВЛЕНИЕ:
Вопрос, который я s, что функция рендеринга вызывается до того, как API сможет извлечь детали и обновить переменную состояния
Таким образом, раскрывающийся список пуст, но в файле console.log, который вызывается при нажатии кнопки, отображаются данные. (дай знать, если ты хочешь увидеть код)
Я добавил вызов API в конструкторе, предполагая, что он будет выполнен перед рендерингом, но вызов API, являющийся асинхронным, не происходит до рендеринга .
Короче говоря - Как вызвать render после того, как API успешно выберет данные?