Javascript 属性未更新

标签 javascript reactjs

我正在使用 ReactJS,这让我抓狂。

我正在尝试更新来自状态的对象

var state = this.state;

sku = data['sku'];
console.log(sku) //prints sku/06
console.log(state.sku) //prints sku/06
state.sku = sku;
console.log(state.sku) //prints sku/10

我查过了,只有一个电话在打。尽管我使用 flux 来更新商店,但此归因是在将操作发送到调度程序之前进行的。

这是怎么回事?

最佳答案

您是否尝试过使用 React 的 setState 函数更新状态?

var sku = data['sku'];
this.setState({sku: sku});

直接从 React 文档复制 https://facebook.github.io/react/docs/component-api.html

NEVER mutate this.state directly, as calling setState() afterwards may replace the mutation you made. Treat this.state as if it were immutable.

setState() does not immediately mutate this.state but creates a pending state transition. Accessing this.state after calling this method can potentially return the existing value.

There is no guarantee of synchronous operation of calls to setState and calls may be batched for performance gains. setState() will always trigger a re-render unless conditional rendering logic is implemented in shouldComponentUpdate(). If mutable objects are being used and the logic cannot be implemented in shouldComponentUpdate(), calling setState() only when the new state differs from the previous state will avoid unnecessary re-renders.

关于Javascript 属性未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34020792/

相关文章:

javascript - 设计一个比使用 AJAX 获取整个 HTML 文档更好的解决方案

javascript - react 视频元素性能

javascript - 如何为 React 创建 npm 包

javascript - 如何使用 React 从 json 对象创建列表

javascript - 无法在命令提示符下使用 openai

javascript - 暧昧的称呼? JavaScript 函数和对象

javascript - d3.js 选择的 enter() 部分只被调用一次

javascript - 解决错误 "Request header field <name> is not allowed by Access-Control-Allow-Headers in preflight response"无法访问服务器

javascript - 用包含现有段落值的文本区域替换段落

javascript - 如何模糊网页背景并使其在某些区域不可交互?