2016-07-25 68 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

偉大的答案!謝謝! –