newb on ReactJS,让我们看看我正在使用的一些代码
<!-- language: lang-js -->
import Oak from './Oak'
class Space extends Component {
componentWillMount () { Newstate = Oak(oldState) }
componentWillUpdate () { }
render () {
return()
}
}
function mapStateToProps (state) { return {bigStateTree: state.bigTree } }
export default connect(mapStateToProps)(Space)
----------
//Oak.js
export default function Oak (inputState = null) {
dosome 3D dance
return bigStateTree
}
在ctrl面板(Space.js)上使用ReactJS和Redux,在画布上使用一些3d(Oak.js)。
问题是:
我希望从返回值中获取Oak.js中的数据然后重新渲染(再次调用Newstate = Oak(oldState))状态中的3d基础,当状态变化3d发生变化时,3d变化状态发生变化时循环点击不变。
基于StackOverflow NEVER mutate this.state directly
的建议我不知道现在该做什么。
答案 0 :(得分:0)
首先在构造函数中设置初始状态。您可以按如下方式执行此操作,其中yourProperty是您想要的键,defaultValue是您选择的值:
this.state = { yourProperty: defaultValue }
然后在componentWillMount()中:
this.setState({ yourProperty: Oak(this.state.yourProperty) })
最后访问render()方法中的状态:
return (
<div>{this.state.yourProperty}</div>
);
在没有setState方法的情况下,唯一可以为this.state赋值的是构造函数。另请注意,您无法在render()方法中更改状态。
阅读React组件生命周期将非常有用。