【问题标题】:updating single items in useState hooks from a Picker从 Picker 更新 useState 挂钩中的单个项目
【发布时间】:2020-12-16 19:12:03
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: react-native react-hooks picker use-state


    【解决方案1】:

    您可以使用扩展运算符首先获取当前用户的数据,然后简单地覆盖国家:setCurrentUser(currentUser =&gt; ({ ...currentUser, Country: item.label }))

    【讨论】:

    • 这正是我所需要的。非常感谢!
    【解决方案2】:

    试试这个:

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

    【讨论】:

    • 对不起。我没有注意到有人已经帮助了:))
    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 2021-05-23
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2020-05-31
    • 2021-03-30
    • 1970-01-01
    相关资源
    最近更新 更多