reactjs - 等效的useMemo异步功能?
问题描述
我只需要在我的应用程序中进行一次 HEAVY(需要 .then() 语法)API 调用。我所拥有的工作,使用 useState 和 useEffect,但是当上下文重新加载时,它会再次调用 API。
有没有办法使用 useMemo 重写它以使其工作,所以如果上下文重新呈现,它可以使用保存的响应而不是再次调用 API?
import React, { useState, useEffect } from 'react';
import fetchData from 'utils/fetchData';
export MyContext = () => {
const [data, setData] = useState(null);
useEffect(()=> {
fetchData().then(res=> setData(res));
},[]);
return(
{/*... */}
);
}
我分别尝试了这些无济于事...
const response = useMemo(async () => await fetchData(),[]);
const response = useMemo(() => fetchData(), []);
const response = useMemo(fetchData(), []);
// Also separately tried in fetchData.js...
export default React.memo(fetchData);
解决方案
推荐阅读
- android - AutoCompleteTextView 上的 Android 材质微调器 NullPointerException
- java - 我有一个关于 java jar 包的问题
- python - 如何使用 Python 使 Intellisense 或自动完成?
- css - 我如何在引导卡标题中对齐
- python - 在另一个 XML 中包含一个 XML 并用 python 解析它
- excel - 将 Outlook Folder.items 分配给 Excel 中的对象时出现运行计时器错误“5”
- c# - 使用资源管理器序列化数据的另一种方法
- jmeter - 如何从使用未显示在响应数据中的随机数变量创建的会话代码中获取值
- reactjs - 材料表标题React中的Col span和Row span
- vaadin - 显示不同 UI 的选项卡 - Vaadin 14