最新回答 / 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