Nativebase选择器项未显示选定值

时间:2019-02-25 14:51:00

标签: react-native native-base

我正在尝试从选择器项目中选择项目。问题是当我单击项目然后在函数处理程序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道具值-{v.jobTitle}中使用,则选择了值更改,但我想在onValueChangeJob(value)函数中使用整个对象v。一件主要事情说明更新,但无法显示选择器的选定值 尝试了很多不同的事情,但没有发生我想要的事情。 我应该如何以适当的示例处理这个问题,因为我是React Native的新手。

看看我的选择器在这张图片中的样子

Look How My Picker look in this image

1 个答案:

答案 0 :(得分:0)

经过大量谷歌搜索一对一解决方案后,我发现该解决方案必须过滤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