REACTJS 渲染方法在状态更新后不更新
REACTJS render method not updating after state update
大家好,我有一个基本对象,如下所示:
现在我想向“选项”添加一个元素,这些元素应该呈现一个新的 JSX 元素,如下所示:
这是我的“添加”功能:
状态正在更新,但不会呈现新的 JSX。
谁能帮帮我。
let tmpExtraObject = extraObject
这不会复制对象,因此您之后对其所做的任何更改都会改变原始对象。然后,当您使用同一个对象设置状态时,React 将在旧状态和新状态之间执行 ===
,看到它们是同一个对象,因此跳过渲染。
相反,您需要创建状态的副本并更改副本:
let tmpExtraObject = {
...extraObject,
options: [
...extraObject.options,
{
id: extraObject.options.length + 1,
name: "",
priceBase: "",
isDefault: false,
}
];
}
setExtraObject(tmpExtraObject)
删除value :
:
setExtraObject({
id:...,
options :...
})
在添加函数中复制您的状态,而不是定义指向它的新变量:
const tmpExtraObject = {...extraObject}
大家好,我有一个基本对象,如下所示:
现在我想向“选项”添加一个元素,这些元素应该呈现一个新的 JSX 元素,如下所示:
这是我的“添加”功能:
状态正在更新,但不会呈现新的 JSX。 谁能帮帮我。
let tmpExtraObject = extraObject
这不会复制对象,因此您之后对其所做的任何更改都会改变原始对象。然后,当您使用同一个对象设置状态时,React 将在旧状态和新状态之间执行 ===
,看到它们是同一个对象,因此跳过渲染。
相反,您需要创建状态的副本并更改副本:
let tmpExtraObject = {
...extraObject,
options: [
...extraObject.options,
{
id: extraObject.options.length + 1,
name: "",
priceBase: "",
isDefault: false,
}
];
}
setExtraObject(tmpExtraObject)
删除value :
:
setExtraObject({
id:...,
options :...
})
在添加函数中复制您的状态,而不是定义指向它的新变量:
const tmpExtraObject = {...extraObject}