react-native: <Picker> 在更改 <Picker.Item> 标签时丢失 selectedValue

IT技术 javascript android reactjs react-native redux
2021-05-27 00:17:11

我想更改<Picker.Item>mys标签<Picker>,例如,当语言更改时,由另一个按钮 ( react-redux)触发

key并且value应该保持不变,只是label变化。

不幸的是,结果是重新渲染(?)和selectedValue对第一个<Picker.Item>s更改(不是默认值!)。

<Picker 
    selectedValue={this.props.myValue}
    onValueChange={(newValue) => this.props.setMyValue(newValue);}}>

    {this.props.myOptions.map((s, i) => {
        let l = modify(s);
        return <Picker.Item key={i} value={s} label={l}/>      
    })}
</Picker>

一旦发生label变化,问题就会发生,例如通过在每次更改时添加当前日期:

export default function modify(string) {
    // return string; // works
    return string + '_i_change_' + new Date(); // doesn't work
}

我感谢每一个建议。提前致谢!

1个回答

遇到了同样的问题。您可能需要将 selectedValue 设为字符串。例如:

selectedValue={this.props.myValue.toString()}