最新回答 / Yannis_w
就算加上 [] 還是會被執(zhí)行兩次import React, { useState, useEffect } from "react";export default function StateFunction() {? const [num, setNum] = useState(1);? useEffect(() =&? } {? ? console.log("@");? }, []);? return &/didiv&;;}這是一個(gè)...
2022-05-09
最新回答 / qq_精慕門9253943
三種方式解決:1,在index.js取消react.strictMode模式2,在設(shè)置的參數(shù)的useEffect中加非空判斷3,把初始化放到useReducer里面
2022-04-16
最新回答 / 慕函數(shù)8463949
后面依賴項(xiàng)數(shù)組如果不寫,就相當(dāng)于添加了所有的依賴項(xiàng),依賴項(xiàng)為[],則表示不依賴任何屬性,這樣useEffect就相當(dāng)于只執(zhí)行一次,ref.current是不變的,只有一個(gè)值,因?yàn)橹粓?zhí)行了一次,否則相當(dāng)于多次執(zhí)行useEffect,每次重新執(zhí)行setInterval 都會有一個(gè)新id
2022-04-11
第三步:自定義hook返回一個(gè)數(shù)組,太絕對了,它不僅可以返回?cái)?shù)組,也可以是對象,值
2021-12-22
3-2節(jié)有一個(gè)明顯的錯(cuò)誤
作者說useEffect中返回的函數(shù)會先執(zhí)行,然后才執(zhí)行其他部分,這是錯(cuò)誤的。
useEffect的返回函數(shù)是后執(zhí)行的。
不要忘了頁面剛剛加載,且尚未點(diǎn)擊div時(shí),useEffect已經(jīng)執(zhí)行了一次,這時(shí)并沒有執(zhí)行返回函數(shù)。
而當(dāng)點(diǎn)擊div時(shí),先輸出的“銷毀”,實(shí)際上對應(yīng)的是上一次的“函數(shù)組件結(jié)束渲染”。
作者說useEffect中返回的函數(shù)會先執(zhí)行,然后才執(zhí)行其他部分,這是錯(cuò)誤的。
useEffect的返回函數(shù)是后執(zhí)行的。
不要忘了頁面剛剛加載,且尚未點(diǎn)擊div時(shí),useEffect已經(jīng)執(zhí)行了一次,這時(shí)并沒有執(zhí)行返回函數(shù)。
而當(dāng)點(diǎn)擊div時(shí),先輸出的“銷毀”,實(shí)際上對應(yīng)的是上一次的“函數(shù)組件結(jié)束渲染”。
2021-10-23