我们如何将数据传递到 this.state - React.js?
2016-11-20
501
我在 JSX 文件中创建了一个 React 组件,在构造函数中我有:
this.state = {data: [[200,100],[50,60],[100,300]] };
这完全没问题。它运行良好。
但是,如果我添加:
this.state = {linedata: [{x:200,y:100},{x:50,y:60},{x:100,y:300}] };
我得到:
d3.js:265 Uncaught TypeError: Cannot read property 'length' of undefined
我非常困惑为什么会出现这种情况。数据是否应该以某种方式格式化?
2个回答
您是否在初始分配后尝试重新分配
this.state
?您永远不应手动设置组件状态;而是使用
this.setState
。
2016-11-20
在 React 中,每个组件的
state
都是一个简单的 JavaScript 对象。在您的第一个示例中,由于您说组件渲染效果很好,因此您的组件似乎利用了
this.state
的
data
属性。
如果您将其更改为
this.state.linedata
,
this.state.data
将为
undefined
。您可能应该更新您的组件以从
this.state.linedata
而不是
this.state.data
读取。
更多关于您如何编写
render
函数以及您在代码中使用 d3 的方式的示例将有助于为您提供更精确和更有用的答案。
Yangshun Tay
2016-11-20