如何在react-native中仅显示`Picker`中的`selectedValue`的一部分?

时间:2019-05-13 10:30:30

标签: react-native picker

我正在react-native中实现Picker。 Picker的值为String。我只需要在所选值中显示该字符串的一部分,我就需要拆分该字符串并动态地从中获取数据。

<Picker selectedValue={() => this.state.item.unit[this.state.uIndex].split(/\d+(cals)/)[0]} 
                       style={style.pick}


                       onValueChange={(itemValue, itemIndex) => this.setState({uIndex: itemIndex})}
                       mode="dropdown"
                    >
                    {
                       this.state.item.unit.map((sizee) => {
                           return( <Picker.Item label={sizee} value={sizee} /> );
                       })
                   }
                   </Picker>

上面的代码更改了uIndex的状态,并且如果我以以下方式写selectedValue可以正常工作:

selectedValue={this.state.item.unit[this.state.uIndex]} 

我如何显示分割价值?

1 个答案:

答案 0 :(得分:0)

您需要先将其拆分,然后再将其发送到选择器:

///使用拆分后的值创建一个新数组以替换原始数组

var arrayWithSplittedStrings=[];
 this.state.item.unit.map(item=>{
    let eachItemSplitted = item.split(/\d+(cals)/)[0]
    arrayWithSplittedStrings.push(eachItemSplitted )
})
//then replace your state with the splitted values
this.setState({item[unit]:arrayWithSplittedStrings})

然后它应该按照您想要的方式工作