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

Я пытаюсь выбрать элемент из пункта выбора. проблема заключается в том, когда я нажал на элемент затем на обработчик функции 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). Обновление состояния одной главной вещи, но не может отображаться на выбранном значении выбора, перепробовал много разных вещей, но не получилось то, что я хочу. Как я должен справиться с этим с надлежащим примером, как я новичок в реакции родной.

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

2 ответа

После долгих поисков в поиске решения один на один я нахожу это решение, которое мне нужно отфильтровать this.state.jobTypes Списать этот массив в обработчик 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

Если вы используете схему yup и проверки, вы можете использовать getValues() в свойстве selectedValue .

Я решил это

      <Picker
      selectedValue = {getValues('storeId')}
      onValueChange={itemValue =>
           setValue('storeId', itemValue, true)
      }>
  .../>
Другие вопросы по тегам