私は検索機能のために2つのコンポーネントを持っています.1つは検索フィルターを選択し、もう1つは検索クエリを行います。フィルタを選択するたびに状態がリロードされるため、複数のフィルタを選択することはできません。検索コンポーネントを呼び出して、検索フィルタコンポーネントの状態を保持する方法はありますか?私searchfiltersコンポーネントで他のコンポーネントを呼び出した後にコンポーネント内に状態を保持する方法
私はこれがあります。
<SearchFilters searchWithFilters={this.searchWithFilters.bind(this)} />
そして、私はこの方法があります:私の検索コンポーネントで
let state = _.extend({}, this.state);
state.filters = this.toggleFilter(filterObj, state.filters);
this.setState(state);
this.props.searchWithFilters(state.filters);
を私が持っている
searchWithFilters(filters) {
let state = _.extend({}, this.state);
state.filters = filters;
this.setState(state);
this.props.search(this.state);
}
あなたの返信ありがとう! searchfiltersの状態を検索コンポーネントに渡すことはできますか? –
もちろん、SearchFiltersの状態を使用する必要はありませんが、searchWithFiltersまたは別のコールバックメソッドを使用してSearchComponent状態のフィルタを更新すると、フィルタのpropで十分です。 –
searchWithFiltersの可能性を示すために私の答えを編集しました。新しいフィルタが使用され、状態に追加されます。 SearchFiltersコンポーネントでthis.state.filtersの代わりにthis.props.filtersを使用します。 –