response-select asyn c обратный вызов не вызывается - PullRequest
0 голосов
/ 05 мая 2020

Я использую компонент AsyncSelect response-select и пытаюсь разрешить его из обратного вызова с помощью следующего кода:

loadOptions(inputValue, callback) {
  this.props.asyncFunctionWithCallback(resp => {
    callback(resp);
  });
}

asyncFunctionWithCallback() является asyn c функция, которая получает обратный вызов, который вызывается при выполнении обещания:

asyncFunctionWithCallback(doneCallback) {
  // Call some async code
  fetch(url).then(response => { 
    doneCallback(response) 
  }
}

Я пытаюсь вызвать response-select callback() из обратного вызова asyncFunctionWithCallback(), но похоже, что это не так вызывается, поскольку asyncFunctionWithCallback() вызывается постоянно.

Думаю, я неправильно передаю обратный вызов, но не могу понять, что я делаю не так.

1 Ответ

0 голосов
/ 05 мая 2020

Вам нужно будет передать значение res. json из выборки в обратный вызов, например

asyncFunctionWithCallback(doneCallback) {
  // Call some async code
  fetch(url)..then(res => res.json())then(response => { 
    doneCallback(response) 
  }
}

Однако, поскольку у вас уже есть асинхронный c код, лучше использовать перспективный подход для loadOptions

loadOptions(inputValue) {
  return this.props.asyncFunctionWithCallback();
}

asyncFunctionWithCallback() {
  // Call some async code
  return fetch(url)..then(res => res.json());
}
...