是否需要在useEffect返回挂钩中将useState设置为其默认值?

时间:2020-05-22 07:36:09

标签: reactjs react-hooks

假设我有以下代码,它具有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([])是否必要?我什至需要清除卸载数据吗?

3 个答案:

答案 0 :(得分:1)

您绝对不需要在卸下组件时将状态设置为初始状态。

提供了清除功能,以删除侦听器或订阅。

您声明已清除引用,并在卸载时收集了垃圾。再次安装组件后,状态将再次初始化。

答案 1 :(得分:0)

没有必要。

只需获取数据,并将其置于您的状态即可。在这种情况下,无需担心清理状态

答案 2 :(得分:0)

react useEffect钩子具有清理回调函数,可用于清理状态。

useEffect(() => {

// Specify how to clean up after this effect:
return function cleanup() {
 // clean up code 
}; });