哪个是更好的选择或最佳实践?
<input onChange={() => dispatch(/* some action (/)} />
或
<input onChange={() => this.setState({ value: newValue })} />
,然后在成功提交表单后更新redux存储中的值。
答案 0 :(得分:2)
我认为这完全取决于您的要求。
这两种方法都有自己的优点。
请考虑以下场景:如果用户不小心刷新页面或页面以其他任何方式刷新,则希望表单数据为persist
。在这种情况下,您可以使用以下方法直接将值存储在redux状态:
<input onChange={() => dispatch(/* some action (/)} />
这样做,您的redux存储就是事实的唯一来源。而且您不需要在组件中维护单独的状态。您的组件将是纯组件。
另一种情况是,您不必担心要保留的数据,而只希望将数据存储在redux存储中一次。在这种情况下,您可以选择第二种方法,即
<input onChange={() => this.setState({ value: newValue })} />
这样做,您将拥有维护本地状态并稍后再更新到Redux存储的额外开销。
您可以根据需要选择任何选项。
答案 1 :(得分:0)
如果您使用的是Redux表单,则不必执行此操作,因为Redux表单会自动将更改保存在商店中(并非主要是),因此,当您使用Redux表单时,需要使用onClick
并使用例如,其中的帮助者
<button
onClick={()=>
this.clickhandlerhelper() }>
click here </button>
在您的助手中,就像这样
Clickhandlerhelper(formvalues){
This.props.myactionsave(formvalues)}
然后在您的助手中,您可以保存数据或所需的任何内容 希望它对您有用,您就会明白
答案 2 :(得分:0)
这是一种更好的方法。
awk '{tmp=$0;gsub($2,"")} NF==1{print tmp}' file