объект `передан в 'ReactiveComponent`, ожидаемая функция` - PullRequest
0 голосов
/ 27 июня 2019

Я получаю эту ошибку при попытке использовать ReactiveSearch для панели поиска. Вот как я его инициализирую:

render() {
    const { tenantConfig, size, componentId } = this.props;
    return (
      <ReactiveComponent
        componentId={componentId}
        defaultQuery={this.defaultQuery}
      >
        <SearchDropdownDashboard
          size={size}
          handleSearchDashboard={this.handleSearchDashboard}
          fetching={this.state.fetching}
          tenantConfig={tenantConfig}
        />
      </ReactiveComponent>
    );
  }

И эта функция передается в:

defaultQuery = () => {
    const { dashboardText } = this.state;
    const { mustNotObj } = this.props;

    let obj;

    obj = {
      query: {
        bool: {
          must_not: mustNotObj,
          must: multiMatchSearch(dashboardText)
        }
      },
      from: 0,
      size: 20
    };

    return obj;
  };

Есть предложения, что я здесь делаю не так? Кажется, что функция правильно передана компоненту.

1 Ответ

1 голос
/ 27 июня 2019

Если вы используете v3, то это связано с недавними изменениями, внесенными в API. Вам нужно будет использовать render prop или React render Pattern, как это сделано в следующем примере.

Вы можете проверить документы здесь: https://opensource.appbase.io/reactive-manual/advanced/reactivecomponent.html#usage-with-defaultquery.

Я создал пример использования ReactiveComponent для обеих версий:

v3: https://codesandbox.io/s/serene-ritchie-rjo3m

v2: https://codesandbox.io/s/tender-ramanujan-f3g31

Надеюсь, это поможет!

...