我有这个脚本,attr是哈希对象,以保持应用程序数据.
const [attr,setAttr] = useState()
const onSetAttr = (data) =>{
console.log(data);
var new_attr = attr;
for (let key in new_attr) {
if (key in data){
new_attr[key] = data[key];
}
}
setAttr(new_attr);
console.log(new_attr);
}
这意味着data
和attr_应该作为散列标记。
但是,setAttr工作正常,但组件不会重新渲染。
我谷歌了一下,发现这与可变/可变有关。
然而在这种情况下,我如何才能重新渲染强制?
1条答案
按热度按时间6ovsh4lw1#
您正在修改同一个对象,因此reconciliation无法正常工作。您应该创建一个新对象: