2016-07-25 3 views
0

最近、私はreact-reduxアーキテクチャで作業するようになりました。 正常に動作した後、いくつかのフィールドをクリーニングしたい。 私はreact-redux方法を使用してそれを行う方法を知っていますが、私は疑問に思っていました: プレーンなJavaScriptを使用してこれらのフィールドをきれいにするのは悪い習慣と考えられますか? 私はそれがタイムマシンに影響することを知っていますが、私はこれを危機的な状態とみなしてはいけません。React-Reduxで作業するときにDOMに直接アクセスする

賛否両論は歓迎されており、厳密な答えではありません。

そして例:

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

私はonChangeイベントで親のプライベートフィールドを更新します。 プライベートフィールドを入力フィールドにバインドすることはできますが、フィールドフィールドをクリアすることだけが必要なので、おそらく私はそれを避けることができると考えました。

ありがとうございます!

+0

あなたは「反応還元型」の考え方の例を示すことができますか? – Aaron

+0

私の質問を編集します。他に何かがない場合は教えてください。ありがとう! –

+0

入力フィールドを消去するために使用できるReactメカニズムがわかっていても、それらを使用したくない場合は、なぜReactを使用していますか? – Brandon

答えて

1

コンポーネントに重要ではない状態を格納することは、Reduxの規則に反するものではありません。物事の一貫性が低く予測可能になります。長期的には、あなたがコンポーネントツリーに持っている少しの状態を後悔するかもしれません。

あなたの例では、テキスト値をリセットするためにDOMを参照する必要はありません。テキスト値をプライベートフィールドに保存しているので、そのフィールドを状態に保存しないのはなぜですか?

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

次にリセットするには、ただsetState({text: ""})にしてください。

+0

isStntは不変でなければならないので、ルールを還元していますか?またはこの例を直接DOMアクセスよりも優れたアプローチとしましたか? –

+0

Reduxを使用しても、 'setState'を使用しないでください。つまり、あなたはその状態のためにReduxを使用していないということです(すでにプライベートフィールドに状態を保存しているので、 )。 Reduxは、すべての状態をReduxストアに保存しなければならないと指示しません。違いを理解するだけです、 – Aaron

+0

すばらしい答え!ありがとう! –

関連する問題