2016-07-25 70 views
0

我最近开始使用react-redux体系结构。 我想在成功操作后清理一些字段。 我知道如何使用react-redux的方式做到这一点,但我想知道: 使用普通的javascript来清理这些字段会被认为是不好的做法吗? 我知道它影响时间机器,但我不认为这是一个关键的状态来保存。使用React-Redux时直接DOM访问

优点和缺点值得欢迎,而不仅仅是一个严格的答案。

和示例:

<input type="text" onChange={this.onChange}/> 

我onChange事件更新父母的私有字段。 我知道我可以将私人字段绑定到输入的值字段,但由于唯一需要的是清除字段,所以我想也许我可以避免它。

在此先感谢!

+0

你能举一个你认为是“react-redux方法”的例子吗? – Aaron

+0

编辑我的问题。让我知道是否有其他东西丢失。谢谢! –

+0

如果您知道可用于清除输入字段但不想使用它们的React机制,那么您为什么使用React? – Brandon

回答

1

在组件中存储一些非关键状态并不违反Redux的规则。它只是使事情不那么一致和可预测。从长远来看,您可能会后悔组件树中的小小状态。

尽管如此,您不需要引用DOM来重置文本值。由于您已将文本值存储在专用字段中,为何不将该字段存储在状态中?

<input type="text" value={this.state.text} onChange={this.onChange} /> 

然后重置它,你可以只是setState({text: ""})

+0

isnt setState违反了redux规则,因为状态必须是不可变的?或者您将此示例作为比直接dom访问更好的方法? –

+0

使用Redux并不意味着你不应该使用'setState',它只是意味着你没有为这段状态使用Redux(并且由于你已经在私有域中存储状态,所以你已经没有使用Redux了)。 Redux并不要求你必须在Redux商店中存储* all *状态。您只需了解差异, – Aaron

+0

伟大的答案!谢谢! –