哪个是更好的选择或最佳实践?
<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存储的额外开销。
您可以根据需要选择任何选项。