假设我有以下代码,它有一个useState钩子,其默认值为空数组:
import React, { useState, useEffect } from "react";
export default () => {
const [fooData, setFooData] = useState([]);
useEffect(() => {
// some data fetching from and API happens here... example: setFooData(data);
// this is what I am talking about
return () => setFooData([]);
}, []);
}
所以基本上这是做什么的,它是获取数据,将其设置为状态并在卸载时再次清除它,但这return () => setFooData([])
必要的吗?我甚至需要在卸载时清除数据吗?
卸载组件时绝对不需要将状态设置为初始状态。
提供清理功能以删除侦听器或订阅。
您声明在卸载时清除引用并回收垃圾。当组件再次挂载时,状态将再次初始化。
没有必要。
只需获取数据并将其放入您的状态。在这种情况下,无需担心清理状态
react useEffect 钩子有一个清理回调函数,可用于清理你的状态。
useEffect(() => {
// Specify how to clean up after this effect:
return function cleanup() {
// clean up code
}; });