Почему при вызове отклоненной функции выдается ошибка «не функция»? - PullRequest
0 голосов
/ 25 января 2019

Я создаю ввод для поиска, который использует lodash debounce для задержки запросов при вводе.

constructor(props) {
    super(props);
    this.state = {
      query: ""
    };
    this.debouncedFetchSearchList = debounce(this.fetchSearchList, 500);
  }

Это функции, которые я использую для получения списка:

fetchSearchList = (query: string) => {
    if (query.length >= 3) {
      this.props.setSearchList(query);
    }
  };

  updateQuery = (id: string, value: string) => {
    const query = value;
    this.setState({
      query: query
    });
    this.debouncedFetchSearchList(query);
  };

JSX:

<TextInput
          type="text"
          id="search-items"
          onChange={this.updateQuery}
          label={I18n.search}
          placeholder={I18n.search}
          className="search-items"
        />

Когда я печатаю с использованием этой настройки, я получаю сообщение об ошибке: «Uncaught TypeError: _this.debounceFetchSearchList не является функцией»

Если я вызываю console.log (this), я вижу, что функция есть и ее значением является обертка lodash.

Я что-то упускаю из виду?

1 Ответ

0 голосов
/ 25 января 2019

Так что в конце концов это была глупая ошибка.

Я импортировал его неправильно.

У меня было: import debounce from "lodash";

Должно было быть: import { debounce } from "lodash";

Ранее я предполагал, что импорт был в порядке, так как предполагал, что получит ошибку, если она будет неправильной.

...