繁体   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