所以我有一个从react-native-dropdown-picker进口的react-native-dropdown-picker,
我想以映射状态更新单个项目:
const [currentUser, setCurrentUser] = useState({Country: '', Name: ''});挑选者代码是:
<DropDownPicker items={[ //JSON import
{label: 'USA'},
{label: 'India'},
{label: 'Germany'},
{label: 'France'},
{label: 'Israel'},
]}
placeholder="Country"
containerStyle={styles.pickerHeight}
style={styles.picker}
dropDownStyle={styles.pickerDrop}
onChangeItem = {(item) => {
// ------------------- here I want to update 'Country'
}}
/>我尝试过:setCurrentUser({Country: item.label}),但很明显,它会导致Name属性被删除。
在不丢失数据的情况下更新状态中的单个项的正确方法是什么?
谢谢
发布于 2020-12-16 19:39:24
您可以使用spread操作符首先获取当前用户的数据,然后简单地覆盖国家:setCurrentUser(currentUser => ({ ...currentUser, Country: item.label }))
发布于 2020-12-16 19:47:46
试试这个:
setCurrentUser(prevState => {
return {
...prevState,
Country: <new_country>
}
})https://stackoverflow.com/questions/65329697
复制相似问题