ReactiveSearch выполняет сохраненный запрос - PullRequest
4 голосов
/ 03 апреля 2020

Я сохранил запрос в БД и отозвал его для повторного запуска. Однако я не знаю, как повторно выполнить запрос.

Я получаю запрос в 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(),
        );
  }}

1 Ответ

0 голосов
/ 24 апреля 2020

Вы не можете отправить sh строку запроса обратно в компонент и позволить ей обрабатывать все компоненты, использованные для создания запроса. Вы должны получить значения из строки запроса и снова установить значения компонентов. Затем запрос будет перезапущен с использованием метода onChange.

...