sách gpt4 ai đã đi

Khi sử dụng useContext, dữ liệu đầu tiên được tải dưới dạng một mảng trống và khi tôi áp dụng .map() hoặc .find(), tôi nhận được thông báo lỗi

In lại 作者:行者123 更新时间:2023-12-03 07:12:53 32 4
mua khóa gpt4 Nike

我在功能组件中有以下代码:

const [ folder, setFolder ] = useState([]);
const folderData = useContext(FolderContext);


const folderId = props.match.params.id;

sử dụngHiệu ứng(() => {
retrieveData()

}, [folder])

const retrieveData = () => {
const findFolder = folderData.find(f => f.id === folderId);
console.log(findFolder);
setFolder(findFolder);
}

当我使用 console.log(folder) 时,我得到了三个未定义的实例,一个未定义的实例,然后是一个包含我需要的数据的实例。如果我尝试访问文件夹内的数据,例如 folder.name,我会收到此错误消息:类型错误:无法读取未定义的属性“名称”。

如何让函数只在加载所有数据后才呈现?

1 Câu trả lời

您无法避免的初始渲染。如果您从服务器获取数据,初始加载将是未定义的,如果您不处理空检查,将会收到错误。

一种方法是处理 null 情况。

或者你想在收到数据后加载你的组件,你可能必须使用 React.Suspense

Suspense 将提供回退,直到您的组件收到响应。在回退中,我们可以包含加载程序图像,以便用户在数据加载之前看到加载程序图像。

阅读更多 - https://reactjs.org/docs/concurrent-mode-suspense.html

关于javascript - 使用 useContext 时,数据首先加载为空数组,当我应用 .map() 或 .find() 时,我收到一条错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64071738/

32 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com