简体   繁体   English

是否可以使用在 useEffect 钩子中声明的对象?

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

I want to use object declared in useEffect hook, like我想使用在useEffect钩子中声明的 object,比如

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

but IDE gives me an error that myObject is not defined...但是 IDE 给我一个错误,说myObject没有定义......

I assume that it is not a good way to lead re-rendering objects declared in useEffect hook, but anyway, is there any way to use objects declared in useEffect hook?我假设这不是一个很好的方法来引导重新渲染在 useEffect 钩子中声明的对象,但是无论如何,有没有办法使用在 useEffect 钩子中声明的对象?

I don't think so, because it's in different scope.我不这么认为,因为它在不同的 scope 中。

it would be ok to use state instead, because when useEffect call and object change, you wont get new value in object可以改用 state,因为当 useEffect 调用和 object 更改时,您不会在 object 中获得新值

like this:像这样:

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

  myObject?.myFunction()
}

First your code is wrong.首先你的代码是错误的。 It's not useeffect it's useEffect , so:它不是useeffect它是useEffect ,所以:

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

should be:应该:

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

Second you would use useState in this scenario:其次,您将在这种情况下使用useState

const [ myObject, setMyObject ] = useState()

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

  myObject?.myFunction()

Third make sure you're importing them correctly with something like:第三,确保您使用以下内容正确导入它们:

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