最新回答 / Yannis_w
就算加上 [] 还是会被执行两次import React, { useState, useEffect } from "react";export default function StateFunction() { const [num, setNum] = useState(1); useEffect(() =& } { console.log("@"); }, []); return &/didiv&;;}这是一个...
2022-05-09
最新回答 / qq_精慕门9253943
三种方式解决:1,在index.js取消react.strictMode模式2,在设置的参数的useEffect中加非空判断3,把初始化放到useReducer里面
2022-04-16
最新回答 / 慕函数8463949
后面依赖项数组如果不写,就相当于添加了所有的依赖项,依赖项为[],则表示不依赖任何属性,这样useEffect就相当于只执行一次,ref.current是不变的,只有一个值,因为只执行了一次,否则相当于多次执行useEffect,每次重新执行setInterval 都会有一个新id
2022-04-11
3-2节有一个明显的错误
作者说useEffect中返回的函数会先执行,然后才执行其他部分,这是错误的。
useEffect的返回函数是后执行的。
不要忘了页面刚刚加载,且尚未点击div时,useEffect已经执行了一次,这时并没有执行返回函数。
而当点击div时,先输出的“销毁”,实际上对应的是上一次的“函数组件结束渲染”。
作者说useEffect中返回的函数会先执行,然后才执行其他部分,这是错误的。
useEffect的返回函数是后执行的。
不要忘了页面刚刚加载,且尚未点击div时,useEffect已经执行了一次,这时并没有执行返回函数。
而当点击div时,先输出的“销毁”,实际上对应的是上一次的“函数组件结束渲染”。
2021-10-23