Не существует «одного правильного способа» добиться этого в реакции. Существует множество шаблонов реакции, но с одной общей идеей - передавать реквизиты (данные, методы) в одном направлении, от родителя к дети.
В простейшем случае вы можете иметь <Results />
(дочерний компонент) в <Filter />
компоненте (родительском). Любое изменение в <Filter />
(флажки) может быть сохранено в состоянии компонента и использовано для извлечения данных. Полученные данные (также сохраненные в состоянии) могут передаваться детям. Упрощенная render
функция компонента <Filter />
может выглядеть следующим образом:
render() {
return (
<div id="page_layout">
<div id="filters">
<input onChange={/* event handler */} />
<input {/* next filter */} />
</div>
<Results data={this.state.results} />
</div>
)
}
Использование setState
в обработчиках событий приведет к повторной визуализации (просмотр обновления) компонентов <Filter />
и <Results />
. Локальное состояние используется для фильтрации почти во всех приложениях, реагирующих на примеры, но обычно с помощью кнопок.
Один обработчик событий может использоваться для всех флажков, выборка может быть [затем] запущена из setState
обратного вызова. Использование приставки можно использовать как общее (один источник правды) состояние для обоих (или более) параллельных компонентов (без родителя / потомка) ... вам нужно выучить много шаблонов / методов реакции ... слишком широкий вопрос.
Этот урок может быть хорошим началом, но, конечно, есть несколько отличий. F.E. только один вход, значение используется для выборки напрямую, без сохранения в состоянии.