0

我正在使用 react-select 的 AsyncSelect 组件,并尝试使用以下代码从回调中解决它:

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

asyncFunctionWithCallback()是一个异步函数,它接收在 promise 被解决时调用的回调:

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

我试图callback()asyncFunctionWithCallback()回调中调用 react-select,但似乎它没有被调用,因为asyncFunctionWithCallback()它被永远重复调用。

我想我没有正确传递回调,但无法弄清楚我做错了什么。

4

1 回答 1

0

您需要将 res.json 值从 fetch 传递给回调,例如

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

但是,由于您已经有了异步代码,因此最好使用 promist 方法进行 loadOptions

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

asyncFunctionWithCallback() {
  // Call some async code
  return fetch(url)..then(res => res.json());
}
于 2020-05-05T17:19:26.137 回答