【发布时间】:2017-07-12 12:40:30
【问题描述】:
我有简单的检查,当用户点击按钮时我必须这样做:
<button
onClick={() => {
this.props.validatingActions.validate(this.props.Email.Value);
this.props.submittingActions.submitValidation(this.props.Email.IsValid);
}}>Submit</button>
首先,Redux 存储中的电子邮件验证,然后,当电子邮件有效与否时,一些操作会验证。
问题是,this.props 在执行this.props.validatingActionsvalidate 后不会更新,它们只是在离开匿名onClick 函数后才更新,因此this.props.Email.IsValid 具有旧值。
在这种情况下如何正确更新道具?
【问题讨论】:
-
当用户更改电子邮件字段时,您为什么不调用验证?如果您担心性能,这可以是一个去抖函数。
-
因为这是一个简化的例子,我有很多这样的字段。去抖动是什么意思?
-
对一个函数进行去抖动是一种确保它不会被多次调用的方法——也就是说,点击一个按钮 5 次不会导致 5 次提交。你能发布你的 action creators 和 reducers 吗?
-
现在,我没有它们,但我明白它是什么。
-
存在问题是因为您同时调度了两个操作,这导致您当前的商店状态出现竞争条件。您可能需要使用一些中间件,例如
thunk或redux-saga,以便按照您希望的方式工作。
标签: javascript reactjs redux react-redux