从 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>
    }
})