Я использую RNPickerSelect из библиотеки «act-native-picker-select », но не могу отобразить выбор, отображая объекты массива, хранящегося в одном из моих состояний.
Я пытался использовать тот же способ для сопоставления объектов массива, как и при попытке отобразить данные, оборачивая простые компоненты, но я получаю «Ошибка типа. Undefined не является объектом (оценка this.state.selectedItem.label».
Я объявил и инициализирую bankResponseArray: [] в своем классе реакции. И API-вызов для извлечения данных прошел успешно, было вставлено состояние «bankResponseArray» с данными
[
Object {
"__v": 0,
"_id": "5cb411e06f34961204003b79",
"bank_code": "RHB",
"country": "5cb04a7e23479e39e495f2b6",
"created_date": "2019-04-15T05:08:48.769Z",
"name": "RHB",
"status": true,
},
Object {
"__v": 0,
"_id": "5cb42d6635ab9132e0e0b994",
"bank_code": "Maybank",
"country": "5cb04a7e23479e39e495f2b6",
"created_date": "2019-04-15T07:06:14.701Z",
"name": "Maybank",
"status": true,
},
Object {
"__v": 0,
"_id": "5cd4e8b0c4022833942eafe0",
"bank_code": "HongLeong",
"country": "5cb04a7e23479e39e495f2b6",
"created_date": "2019-05-10T02:57:52.130Z",
"name": "HongLeong",
"status": true,
},
Object {
"__v": 0,
"_id": "5cd4ee47c4022833942eafe2",
"bank_code": "testbankcode",
"country": "5cbfc9c99b7d064464592948",
"created_date": "2019-05-10T03:21:43.534Z",
"name": "testbank",
"status": true,
},
]
Ниже показано, как выглядит мой компонент RNPickerSelect, и как я пытаюсь отобразить данные из "bankResponseArray": -
<RNPickerSelect
placeholder={{}}
useNativeAndroidPickerStyle={false}
items={this.state.bankResponseArray.map(obj =>
[{
label: obj.name,
value: obj._id,
color: "rgba(77,38,22,1)"
}]
)}
onValueChange={(value, index) => {
this.setState({
bankID: value
});
}}
onClose={() => {
// this._changeGender()
}}
style={{ ...pickerSelectStyles }}
value={this.state.businessType}
ref={el => {
this.inputRefs.picker = el;
}}
hideIcon={Platform.OS === "ios" ? false : true}
doneText={translate("common_done")}
// disabled={!canSubmit}
/>
Ожидаемые результаты должны были иметь RNPickerSelect, отображающий 4 выбора: «RHB, Maybank, HongLeong, testbank». Но в настоящее время я пытаюсь сопоставить свой массив с RNPickerSelect, получая ошибку «Ошибка типа. Undefined не является объектом (оценивает this.state.selectedItem.label».