react-native - 从 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
属性被删除。
在不丢失数据的情况下更新状态中的单个项目的正确方法是什么?
谢谢
解决方案
尝试这个:
setCurrentUser(prevState => {
return {
...prevState,
Country: <new_country>
}
})
推荐阅读
- dart - 如何在飞镖中将字符串转换为列表?示例将字符串 `"["1", "2", "3", "4"]"` 转换为列表 `[1,2,3,4]`
- ios - 如何快速更改覆盖缺口区域的条形颜色(uikit)
- python-3.x - 使用 Keras 在层堆叠期间拆分输入特征
- python - 如何在 html 中放置 if 以使 'object.star' 的值同时等于 1 和 2
- macos - 如何在mac上以编程方式退出全屏应用程序并使窗口立即隐藏
- masstransit - 在 Masstransit 传奇中无法捕获异常
- model-view-controller - 根据惯例和最佳实践,当路由为“/posts/x/comments”时,评论“create”函数的正确控制器是什么?
- javascript - 如何在 jquery datepicker 中添加一个和多个叶子
- reactjs - React Formik - 在字段验证中使用 setstate
- javascript - 更改文本颜色或将其显示在路径顶部,以便路径不会覆盖它