从 Picker 更新 useState 挂钩中的单个项目
updating single items in useState hooks from a Picker
所以我有一个从 react-native-dropdown-picker
、
导入的 DropDownPicker
我想更新映射状态下的单个项目:
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
属性 被删除。
在不丢失数据的情况下更新状态中的单个项目的正确方法是什么?
谢谢
您可以使用展开运算符首先获取当前用户的数据,然后简单地覆盖国家/地区:setCurrentUser(currentUser => ({ ...currentUser, Country: item.label }))
试试这个:
setCurrentUser(prevState => {
return {
...prevState,
Country: <new_country>
}
})
所以我有一个从 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
属性 被删除。
在不丢失数据的情况下更新状态中的单个项目的正确方法是什么?
谢谢
您可以使用展开运算符首先获取当前用户的数据,然后简单地覆盖国家/地区:setCurrentUser(currentUser => ({ ...currentUser, Country: item.label }))
试试这个:
setCurrentUser(prevState => {
return {
...prevState,
Country: <new_country>
}
})