使用标准Javascript函数自动反应setState

时间:2017-07-13 00:31:59

标签: javascript reactjs react-redux state

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

的建议

我不知道现在该做什么。

1 个答案:

答案 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组件生命周期将非常有用。