Элемент выбора Nativebase не показывает выбранное значение

Я пытаюсь выбрать элемент из элемента выбора. проблема в том, что когда я нажал на элемент, то обработчик функции onValueChangeJob(value) выполнил какую-то задачу

onValueChangeJob(value) {
    this.setState({ jobValue: value.jobTitle})
       USE value.number form another task
    });
}

Ниже мой компонент выбора

<Picker
 style={commonStyle.pickerStyle}
 textStyle={commonStyle.textStylePicker}
 headerTitleStyle={commonStyle.headerTitleStyle}
 headerBackButtonTextStyle={commonStyle.headerBackButtonTextStyle}
 iosIcon={<Icon name="ios-arrow-down" />}
 mode="dropdown"
 placeholder="MAKE A SELECTION"
 placeholderStyle={commonStyle.placeholderStyle}
 note={false}
 itemTextStyle={commonStyle.itemTextStyle}
 selectedValue={this.state.jobValue}
 onValueChange={this.onValueChangeJob.bind(this)}
 >
 {jobItems}                                    
</Picker>

В то время как задания, поступающие с карты, созданной в функции render(), например

jobItems = this.state.jobTypesList.map((v,i) => {
    return <Picker.Item key={i} value={v} label={v.jobTitle} />
});

Итак, здесь, если я использовал непосредственно в picker.item props value-{v.jobTitle}, затем выбрал изменение значения, но я хочу использовать весь объект v в функции onValueChangeJob(value). Одна главная вещь обновление состояния, но не может отображаться для выбранного значения средства выбора пробовал много разных вещей, но не получалось то, что я хочу. как мне справиться с этим на правильном примере, поскольку я новичок в React Native.

Посмотрите, как выглядит мой сборщик на этом изображении

Посмотрите, как выглядит My Picker на этом изображении


person Bhushan Patil    schedule 25.02.2019    source источник
comment
Вы устанавливаете jobValue (объект) как jobTitle (вероятно, строку), а затем получаете к нему доступ из Picker selectedValue, который ожидает объект, а не строку. Как насчет this.setState({ jobValue: value}) в onValueChangeJob()?   -  person Milore    schedule 25.02.2019
comment
Спасибо за ответ. Я знаю, что устанавливаю объект, но this.setState({jobValue: value. jobTitle}), но почему это не работает? означает, что он работал, значение состояния jobValue обновлено, но не может отображаться в средстве выбора selectedValue={this.state.jobValue}.   -  person Bhushan Patil    schedule 26.02.2019
comment
Элементы выбора — это JobTypes. Вы говорите сборщику выбрать JobTitle, которого нет в его массиве JobTypes, так как же он может узнать, к какому элементу он относится?   -  person Milore    schedule 26.02.2019
comment
Должность присутствует в JobTypeList ....   -  person Bhushan Patil    schedule 26.02.2019


Ответы (1)


После большого количества поисковых запросов по одному решению я нашел это решение, которое мне нужно отфильтровать this.state.jobTypesList этого массива в обработчике onValueChange и захватить объекты определенного заголовка задания.

return this.state.jobTypesList.map((v,i) => {
            return <Picker.Item key={i} value={v.jobTitle} label={v.jobTitle} 
        });

let filterArray = this.state.jobTypesList.filter((v) => v.jobTitle === value)[0]
filterArray.jobTitle
filterArray.jobNumber
person Bhushan Patil    schedule 28.03.2019