reactjs,获取状态并将其作为参数传递而不更改它

reactjs, get state and passing it as param without changing it

标题不是很清楚,但我的问题很简单。我正在使用通量模式。 我在反应类中有一个事件处理程序,该处理程序接受用户的输入。 我正在做的是接受这个输入并将其传递给一个动作(然后动作更新存储,最后我的状态被更新)。

handler(e) {
    var newParams = this.state;
    newParams.input = e.target.value;
    MyActions.someAction(newParams);
}

如您所见,我想将使用新输入完成的当前状态传递给一个动作。问题是如果我这样做 我直接修改当前状态而不通过 setState 并且根本不建议这样做。我不想在我的处理程序中使用 setState 我想在商店更改时使用 setState。

所以我的问题是我是否必须使用下划线 _.clone() 之类的东西,或者这是我没见过的更简单的方法吗?

如果您想先更新状态,然后执行操作,您可以利用 setState 回调:

handler(e) {
    this.setState({ input: e.target.value }, () => {
         MyActions.someAction(this.state);
    });
}

是的,您需要创建一个新对象,因为您要分配的是一个引用。除了 _.clone:

之外,您还有其他方法可以做到这一点