簡體   English   中英

在初始渲染時為 refs 反應(掛鈎)不同的值

[英]React (hooks) different value for refs on initial render

有人可以向我解釋這種情況的原因是什么!

假設我有一個在初始渲染時生成隨機值的函數。 然后我使用 ref 分配結果以在后續組件更新后保持值不變。 之后,我將 ref 值分配給某個狀態。 狀態用 setTimeout 中的 ref 值初始化。

import React, { useRef, useState } from "react";
import value from "./example";

function App(){

  const v = useRef(word());

  console.log(v.current); // Here for example the value is "test"

  setTimeout(() => {
    console.log(v.current); // Here the value is different
  }, 1000)

  const [state, setState] = useState(v.current);

  return (
    <div>{v.current}</div>
  )
}

我使用 setTimeout 來說明這種情況,但即使沒有它,結果也是相同的,盡管沒有組件更新,但狀態將用不同的詞創建。

盡管沒有狀態變化,組件在第一次初始化時渲染了多少次?

您正在以嚴格模式運行您的應用程序。 轉到 index.js 並注釋掉嚴格模式標簽。 你會發現一個渲染。

這僅適用於開發模式。 生命周期不會在生產模式下被雙重調用。

這是通過有意重復調用以下函數來完成的:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM