0

私の意図は、react-select を使用して複数選択コンポーネントを作成することです。react-select の小さな問題を回避できません。フラックスストアに入れるには、次のものが必要です。

  1. ユーザーによってすでに選択されている値。これはvalueArrayプロパティを介して渡されます
  2. 選択リストに取り込まれる値。これはoptionsプロパティを介して渡されます

ユーザーが入力ボックスに何かを入力すると、この入力値がonInputChangeフックを使用してキャプチャされ、これによりフラックス アクションが発生します。このアクションは、値の新しいリストを格納してストアを更新し、changeイベントを発行します。ここでの問題は、changeイベントが発行されると、コンポーネントが選択された値と新しいオプション セットで再レンダリングされることです。これが発生すると、ユーザーがフィルター オプションに入力していた値が失われます ( としてvalueArray) が再レンダリングされます。オプションのフェッチをフラックスストアの外に移動せずに、フィルタテキストをreact-selectに保持する方法はありますか?

4

1 に答える 1

1

状態を保存できる場所が 2 つあります: * 状態コンポーネント内 * ストア内

この具体的なケースでは、選択した値を Component 状態に保存し、react-select の ve value prop に割り当てることができます。

onChange 関数: this.setState({value: whatTheUserIsWritting}); React Select コンポーネント: <Select value={this.state.value}/>

このソリューションでは、コンポーネントを再構築すると状態が失われます。この場合、外部のフラックス ストアを使用する必要があります。

于 2016-11-30T10:58:42.000 に答える