转换异步获取结果以进行异步反应选择控制

时间:2019-01-16 22:35:29

标签: reactjs fetch react-select

我正在尝试转换异步获取调用的返回值,并将其返回到异步react-select组件。如果我只是传递获取结果,但是如果我尝试将获取结果转换为{label:X,value:Y},它将填充选择组件(由于它们的格式不正确,因此会带有“空白”条目)。格式,react select组件在下拉列表中没有显示任何值。

选项填充函数

  const promiseOptions = inputValue =>
    new Promise(resolve => {
      resolve(
        fetch("/api/Client")
          .then(resp => resp.json())
          .then(function(data) { //not working if I transform data here
            data.map(x => {
              return {
                value: x.id,
                label: x.name
              };
            });
          })
      );
    });

反应选择异步组件

<AsyncSelect cacheOptions defaultOptions loadOptions={promiseOptions} />

1 个答案:

答案 0 :(得分:0)

对于此实例,应在获取响应时使用setState,然后将数据转换为值标签时,应在loadOption上使用其他方法或函数对其进行处理; fetch本质上是一种异步方法,不需要使用Promise