react-native - 您可以使用 setState() 向对象添加属性吗
问题描述
我有以下回调函数:
handleAddList(s) {
let myItems = {};
let keys = Object.keys(this.state.items);
for (var key in keys) {
myItems[keys[key]] = this.state.items[keys[key]];
}
myItems[s]=[];
this.setState({lists:[...this.state.lists,s],items:myItems},function(){
console.log(this.state);
});
}
但我想知道是否有一种方法可以添加myItems[s]=[]
而this.state.items
无需复制整个对象。
解决方案
就在这里。
例如
handler() {
let myItems = {};
let keys = Object.keys(this.state.items);
for (var key in keys) {
myItems[keys[key]] = this.state.items[keys[key]];
}
myItems[s]=[];
this.state.items=myItems;
this.forceUpdate();
}
如果你只是想更新myItems
.
setState
和forceUpdate
:
setState<K extends keyof S>(
state: ((prevState: Readonly<S>, props: Readonly<P>) => (Pick<S, K> | S | null)) | (Pick<S, K> | S | null),
callback?: () => void
): void;
forceUpdate(callback?: () => void): void;
推荐阅读
- c++ - 在编译时告诉一个不以 '\0' 结尾的 const char 数组,而不是 C 风格的字符串
- react-native - React Native 中的 useState 数组
- python - 使用 Tkinter 的框架内框架
- python - 如何调整seaborn热图中各个子批次的高度
- powershell - PowerShell 脚本在通过任务计划程序运行时缺乏一致性,是我遗漏了什么还是这个 Windows 是 Windows?
- python - python if __name__ == "__main__": IndentationError: expected an indented block
- node.js - 如何使用带有 node.js 代码的 AWS lambda 从 url 下载文件
- jquery - 如何使用 jquery 添加保存/编辑按钮?
- javascript - 我想将根据自定义字段中的百分比计算的常规价格显示为 woocommerce 中的关键事件
- android - 如何使用 ConstraintSet 设置类似 app:layout_constraintBottom_toBottomOf 的内容?