reactjs 是否可以使用useeffect hook中声明的对象?

9udxz4iz  于 2023-01-25  发布在  React
关注(0)|答案(2)|浏览(96)

我想使用在useEffect钩子中声明的对象,例如

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

但是IDE给了我一个错误,myObject没有定义...
我认为这不是一个好方法来导致重新呈现在useEffect钩子中声明的对象,但无论如何,有没有办法使用在useEffect钩子中声明的对象?

wnavrhmk

wnavrhmk1#

我不这么认为,因为这是在不同的范围。
使用状态也可以,因为当useEffect调用和对象更改时,您不会在对象中获得新值
像这样:

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

  myObject?.myFunction()
}
mnemlml8

mnemlml82#

首先你的代码是错误的,它不是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

相关问题