私は、アプリケーションのフォームにネストされたスライダーコンポーネントを持っています。スライダは、にあるパラメータを調整します。親コンポーネントの子コンポーネントの状態を設定するにはどうすればよいですか?
通常、スライダは制御され、その値はRedux store
から渡されます。スライダーを移動すると、onChange
はstore
を更新するアクションをディスパッチし、スライダーの値が変更されます。
しかし、この場合には、この解決策は、問題を提起する:
スライダはそれが50%は全体の数十 と
onChange
イベントの数十のでを意味ドラッグ、100の以上の工程を有しますスライダ自体が
store
に接続されていない場合、onChange
はすべてprops
が変更されているので、親に再レンダリングを強制します。これによりパフォーマンスが向上します。値は、それだけでドラッグし、スライダーの状態に住んでスライダー
onChange
イベントとスライダーを再レンダリング:
だから、私は部分的な解決策を実装しました。
afterChange
イベント - ユーザーがstore
に、dispatch
ES新しい値をスライダーをドラッグした後、マウスを離したときに発生します。
ただし、親には「リセット」ボタンがあり、スライダの値を初期状態に設定する必要があります。
親からスライダコンポーネントに通信して、値をリセットする方法を教えてください。
あなたのSliderコンポーネントに
componentWillReceiveProps
とリセットロジックを定義する理由単に 'onChange'をデバウンスすることはできませんか? – Hamms私は以前にバウンスしていませんでした(実際にはGoogleに持っていただけですが)、uxに悪影響を及ぼしませんか?ユーザーはスライダーをドラッグしますが、デバッグされているので、すぐには更新されず、遅れて見えますか? – Brandon