在React中将参数作为状态调用

时间:2016-07-24 05:47:12

标签: function reactjs parameters state

我在react中有一个复选框,它调用一个函数,其状态为参数。

NonRegisteringDriver.refQueue

我的违规代码就在这里:

@Override
public void run() {
    threadRef = this;
    while (running) {
        try {
            Reference<? extends ConnectionImpl> ref = NonRegisteringDriver.refQueue.remove(100);
            if (ref != null) {
                try {
                    ((ConnectionPhantomReference) ref).cleanup();
                } finally {
                    NonRegisteringDriver.connectionPhantomRefs.remove(ref);
                }
            }

        } catch (Exception ex) {
            // no where to really log this if we're static
        }
    }
}
然而,

SetState将name解释为实际状态而不是在参数中传递的变量,在本例中是一个名为&#34; all&#34;的变量。我将如何使代码将函数解释为:

<p>
  <input
    type="checkbox"  
    name="hobbies"
    checked={this.state.All}
    onChange={this.checkHobbies.bind(this, "all")}
  />
  All Hobbies
</p>

2 个答案:

答案 0 :(得分:2)

checkHobbies(name) {
  this.setState({
    [name]: !this.state[name],
  });
}

如果值传递为'all',则seState将被解释为如下。

this.setState({
  all: !this.state.all
});

答案 1 :(得分:0)

使用

checkHobbies(name) {
  this.setState({
    [name]: !this.state[name],
  });
}