#javascript #reactjs #react-native #dropdown
Вопрос:
Я использую react-native-select-dropdown и устанавливаю массив данных статически, но не знаю, как динамически устанавливать массив данных из API с идентификатором
Код :
const countries = ["Egypt", "Canada", "Australia", "Ireland"]
<SelectDropdown
data={countries}
// defaultValueByIndex={1}
// defaultValue={'Egypt'}
onSelect={(selectedItem, index) => {
console.log(selectedItem, index);
}}
defaultButtonText={"Select"}
buttonTextAfterSelection={(selectedItem, index) => {
return selectedItem;
}}
rowTextForSelection={(item, index) => {
return item;
}}
/>
как динамически настраивать список массивов стран, и мне нужны как заголовок, так и идентификатор выбранного элемента, выборка данных из api:
const countries = [
{namd: 'Egypt', id: 1},
{namd: 'Canada', id: 2},
{namd: 'Australia', id: 3},
{namd: 'Ireland', id: 4},
];
Комментарии:
1. вы должны использовать состояние для обработки динамических изменений данных с повторной визуализацией… например
useState
, для функциональных компонентов проверьте эту ссылку:https://reactjs.org/docs/hooks-state.html
2. не могли бы вы объяснить на примере
3. Вы можете сопоставить массив, а затем отобразить имя, а также получить идентификатор выбранных данных
4. @JuhiKukreja Если мой ответ помог вам, пожалуйста, примите его.
Ответ №1:
Вот пример из вашего кода в соответствии с вашими требованиями. В раскрывающемся меню ниже кода будут показаны названия стран, и когда вы выберете любое из них, оно напечатает выбранную страну и идентификатор. Вы можете использовать хук useState для управления вызовами API. Я показал вам пример, как вы можете управлять ответом для выпадающего списка.
Вы можете проверить этот пример закуски, который я только что сделал — https://snack.expo.dev/hRpKm2bdg
const countries = [
{namd: 'Egypt', id: 1},
{namd: 'Canada', id: 2},
{namd: 'Australia', id: 3},
{namd: 'Ireland', id: 4},
];
export default function App() {
return (
<View>
<SelectDropdown
data={countries}
onSelect={(selectedItem, index) => {
console.log('selected Country name ->>>>',selectedItem.namd)
console.log('selected Country Id ->>>>',selectedItem.id)
}}
buttonTextAfterSelection={(selectedItem, index) => {
// text represented after item is selected
// if data array is an array of objects then return selectedItem.property to render after item is selected
return selectedItem.namd
}}
rowTextForSelection={(item, index) => {
// text represented for each item in dropdown
// if data array is an array of objects then return item.property to represent item in dropdown
return item.namd
}}
/>
</View>
);
}
Комментарии:
1. Большое спасибо … :}