在带有参数this.state.parameter的方法中使用this.state

时间:2017-08-04 09:28:32

标签: reactjs

我在recatjs中开始,我的问题是我的组件中有一个方法有一个参数(this.state.t),错误说我“t”没有定义。这是我的代码

this.state = {
     t: 5 ,
     a:this.give(this.state.t)
  }
...
give(B){
...
}

2 个答案:

答案 0 :(得分:0)

我认为,我们不能在状态内分配变量,你可以做一件事, 最初在构造函数中赋值变量t。然后在构造函数的末尾调用this.give()函数。

constructor(){ 
super() 
this.state = {t:5}

this.give = this.give.bind(this)
this.give(this.state.t)
}

give(a){
youroperation with a 
}

答案 1 :(得分:0)

您将无法在自己的声明中使用this.state。您应该在componentDidMount函数中设置状态,如

this.state = {
     t: 5 ,
     a:null
  }
...
handleClick = () => {
    var a = this.give(this.state.t);
    this.setState({a});
}

give(B){
...

}

<button onClick={this.handleClick}>Click</button>