reactjs - 使用 React Js 从服务器获取数据
问题描述
我正在使用react-select
库,我想从测试 API 中获取数据到选择中。这就是我的代码的样子:
import React, { useState } from "react";
import AsyncSelect from "react-select/async";
const WithPromises = () => {
const filterData = (inputValue) => {
const req = fetch("https://jsonplaceholder.typicode.com/todos?_limit=6")
.then((response) => response.json())
.then((res) => {
return res.map(({ title }) => {
return {
label: title,
value: title
};
});
});
console.log(req, "promise from server");
return req;
};
const promiseOptions = (inputValue) => {
filterData(inputValue);
};
return (
<AsyncSelect
cacheOptions
isClearable={true}
isSearchable={true}
defaultOptions
loadOptions={promiseOptions}
/>
);
};
export default WithPromises;
我试图在选择的打开下拉列表中获取数据,但我没有管理。
如何在下拉列表中填充数据?
演示:https ://codesandbox.io/s/codesandboxer-example-forked-zsj6i?file=/example.js:0-787
解决方案
我认为您正在从服务器获得任何响应之前更新您的选项。您应该使用 async-await 块从服务器获取数据。如果您使用以下内容更新您的 promiseOptions 块,可能会对您有所帮助。请查看以下代码。
const promiseOptions = async (inputValue) => {
return await filterData(inputValue);
};
我希望这能帮到您。谢谢你。
推荐阅读
- html - 如何在闪亮的 HTML 中使用 & 符号?
- java - Apache POI - 尝试使用 POI 更改强调色
- azure-devops - 使用 ACR(天蓝色容器注册表)作为 Azure Devops json 管道的输入
- reactjs - FCM(Firebase 云消息传递):Firebase 推送通知在 Firefox 中显示,但在 Chrome 中不显示
- ruby-on-rails - 无法将 git repo 推送到 Heroku
- android - 在带有 IMA 扩展的 ExoPlayer 中每 5 分钟播放一次线性内嵌广告
- javascript - 根据内容调整日历中框的宽度
- html - 如何在Angular的html页面中获取应用按钮的位置
- arduino - 此代码错误 - 函数 'void digitalWrite(uint8_t, uint8_t)' 的参数太少
- python - 带有 argparser 的 Sonarqube 热点