【发布时间】:2020-08-23 22:54:13
【问题描述】:
我已经在这样的功能性 React 组件中实现了 React State Hook:
const [tableData, setTableData] = useState([]);
在我的组件中,我执行异步 API 请求并用结果填充表格:
const loadArtikel = () =>
fetch("https://my-api.com/api/v1/xyz")
.then(res => (res.ok ? res : Promise.reject(res)))
.then(res => res.json())
return (
<Async promiseFn={loadArtikel}>
{({ data, err, isLoading }) => {
if (isLoading) return (<div>Loading...</div>)
if (err) return `Something went wrong: ${err.message}`
if (data) {
var tempData = [];
Object.keys(data.artikel).map(function (keyName, keyIndex) {
tempData.push(data.artikel[keyName]);
});
setTableData(tempData); // this line is causing problems
return (
<MaterialTable
data={tableData}
/>
)
}
}}
</Async>
);
当我使用setTableData() 时,这会导致一次又一次地重复获取请求。
我不知道为什么。
【问题讨论】:
标签: reactjs asynchronous fetch react-hooks state