我正在尝试转换异步获取调用的返回值,并将其返回到异步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} />
答案 0 :(得分:0)
对于此实例,应在获取响应时使用setState,然后将数据转换为值标签时,应在loadOption上使用其他方法或函数对其进行处理; fetch本质上是一种异步方法,不需要使用Promise