假设我有以下代码,它具有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([])
是否必要?我什至需要清除卸载数据吗?
答案 0 :(得分:1)
您绝对不需要在卸下组件时将状态设置为初始状态。
提供了清除功能,以删除侦听器或订阅。
您声明已清除引用,并在卸载时收集了垃圾。再次安装组件后,状态将再次初始化。
答案 1 :(得分:0)
没有必要。
只需获取数据,并将其置于您的状态即可。在这种情况下,无需担心清理状态
答案 2 :(得分:0)
react useEffect钩子具有清理回调函数,可用于清理状态。
useEffect(() => {
// Specify how to clean up after this effect:
return function cleanup() {
// clean up code
}; });