首页 > 解决方案 > 从 Picker 更新 useState 挂钩中的单个项目

问题描述

所以我有一个从中导入的DropDownPickerreact-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属性被删除。

在不丢失数据的情况下更新状态中的单个项目的正确方法是什么?

谢谢

标签: react-nativereact-hookspickeruse-state

解决方案


尝试这个:

setCurrentUser(prevState => {
    return {
        ...prevState,
        Country: <new_country>
    }
})

推荐阅读