【发布时间】:2020-01-23 00:48:38
【问题描述】:
你能像这样解释一下关于状态内部和外部状态的数据的不同吗:
constructor(){
this.data1 = "this is data 1",
this.state = {
this.data2 = "this is data 2"}
}
因此,如果我在 componentDidMount 或渲染函数中使用 data 2 而没有任何条件代码,它将抛出描述 React 不允许无限循环 bla bla bla 的错误,但如果我在 componentDidMount 或渲染函数中使用 data1,它完美运行。那么差异网络是什么?我应该使用 data1 来让自己获得更多的灵活性吗?
【问题讨论】:
-
首先这甚至不是有效的Javascript。但无论如何,两者之间的区别在于状态内的数据是与组件渲染相关的数据。如果数据是静态的,或者在更改时不需要重新渲染,您可以在状态之外将其定义为实例变量(就像您对
data1所做的那样)。如果更改它应该触发重新渲染,那么你应该将它存储在你的状态中。
标签: javascript reactjs state