簡體   English   中英

是否可以使用在 useEffect 鈎子中聲明的對象?

[英]Is it possible to use objects declared in useeffect hook?

我想使用在useEffect鈎子中聲明的 object,比如

function App(){
  useEffect(() => {
    let myObject = .....
  }
  
  myObject.myFunction()
}

但是 IDE 給我一個錯誤,說myObject沒有定義......

我假設這不是一個很好的方法來引導重新渲染在 useEffect 鈎子中聲明的對象,但是無論如何,有沒有辦法使用在 useEffect 鈎子中聲明的對象?

我不這么認為,因為它在不同的 scope 中。

可以改用 state,因為當 useEffect 調用和 object 更改時,您不會在 object 中獲得新值

像這樣:

function App(){
  const [myObject,setMyObject] = useState()
  useEffect(() => {
    setMyObject(...)
  },[])

  myObject?.myFunction()
}

首先你的代碼是錯誤的。 它不是useeffect它是useEffect ,所以:

useeffect(() => {
  let myObject = .....
}

應該:

useEffect(() => {
  let myObject = .....
}

其次,您將在這種情況下使用useState

const [ myObject, setMyObject ] = useState()

  useEffect(() => {
    setMyObject(...)
  }, [])

  myObject?.myFunction()

第三,確保您使用以下內容正確導入它們:

import React, { useState, useEffect } from 'react'

function So75221887() {
  const [ myObject, setMyObject ] = useState()

  useEffect(() => {
    setMyObject(...)
  }, [])

  myObject?.myFunction()
}

export default So75221887

暫無
暫無

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

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