Я сохранил запрос в БД и отозвал его для повторного запуска. Однако я не знаю, как повторно выполнить запрос.
Я получаю запрос в onChange и сохраняю значение в БД в виде строки для последующего вызова, чтобы его можно было обработать.
<ReactiveBase app={this.props.app} url={config.elastic.URL} >
<StateProvider
onChange={(prevState, nextState) => {
queryString = nextState;
console.log('onChange');
}}
Я искал способ поместить эту строку запроса в компонент DataSearch, если это правильно. Запрос довольно большой, так как у меня есть дополнительные компоненты, прикрепленные к поиску.
Если я установлю значение DataSearch в свой queryString, я не смогу набрать в строке поиска
<DataSearch
dataField={this.props.refinement.searchBar}
componentId="search"
placeholder="Search books or videos"
autosuggest={false}
debounce={debounce}
showClear={true}
customQuery={this.props.customQuery}
defaultValue={this.props.defaultValue}
value={queryString}
>
</DataSearch>
. запрос представляет собой elasti c поисковый запрос, поэтому я получаю строку поиска, заполненную JSON. Я могу получить отдельные элементы и установить для параметра queryString значение, которое дает мне половину того, что я хочу, но с помощью панели поиска я не могу набрать.
var objectQuery = JSON.parse(selectedQueryString);
queryString = objectQuery.search.value;
Обновление
Это помогло в состоянии введите в searchBar и обновите значение и даже можете использовать его для компонента DataSearch.
value={this.state.value}
onChange={(value, triggerQuery, event) => {
this.setState(
{
value,
},
() => triggerQuery(),
);
}}