哪个是更好的选择或最佳实践?

<input onChange={() => dispatch(/* some action (/)} />


要么

<input onChange={() => this.setState({ value: newValue })} />


然后在成功提交表单后更新redux存储中的值。

最佳答案

我认为这完全取决于您的要求。

两种方法都有自己的优点。

考虑这种情况,如果用户不小心刷新页面或通过其他任何方式刷新页面,则希望表单数据为persist。在这种情况下,您可以使用以下方法直接将值存储在redux状态:

<input onChange={() => dispatch(/* some action (/)} />


这样,您的redux存储就是事实的唯一来源。而且您不需要在组件中维护单独的状态。您的组件将是纯组件。

另一种情况是,您不必担心数据会持久保存,而只想将数据存储在redux存储中一次。在这种情况下,您可以选择第二种选择,即

<input onChange={() => this.setState({ value: newValue })} />


这样,您将有维护本地状态以及稍后更新到Redux存储的额外开销。

您可以根据需要选择任何选项。

10-05 20:33
查看更多