Javascript 如何使用异步函数在UseMoom中设置状态?

Javascript 如何使用异步函数在UseMoom中设置状态?,javascript,reactjs,Javascript,Reactjs,我正在尝试使用usemo() const[text,setText]=useState('hello') const fakeApiCall=新承诺(解析=>“世界”) useMemo(异步()=>{ const value=等待fakeApiCall setText(值) }, []) 执行此操作时,text的值仍将保持为hello,而不是world。有可能做到这一点吗?为什么这不起作用?如果我记得正确,对于给定的一对依赖项,usemo返回一个值。因此,理想情况下,您应该传递依赖项。另外,u

我正在尝试使用
usemo()

const[text,setText]=useState('hello')
const fakeApiCall=新承诺(解析=>“世界”)
useMemo(异步()=>{
const value=等待fakeApiCall
setText(值)
}, [])

执行此操作时,
text
的值仍将保持为
hello
,而不是
world
。有可能做到这一点吗?为什么这不起作用?

如果我记得正确,对于给定的一对依赖项,
usemo
返回一个值。因此,理想情况下,您应该传递依赖项。另外,
useMemo(()=>{},[])
不是
组件将挂载
。请尝试
useffect(()=>{},[])
,因为应该在安装组件后提取API数据。否则,组件中可能存在延迟
usemo
用于记忆值,应该没有副作用。我认为您希望使用
useffect
钩子来初始化状态。另外,出于所有实际目的,
componentWillMount
已被弃用,请使用与
componentDidMount
等效的
useffect
并带有空的依赖项数组。@drewerese但是如果我使用
useffect
,它将不会在服务器端触发,并且我不能只在客户端获取数据。对吗,它得到了一个有点时髦的反应挂钩,安装,和固态继电器。谷歌搜索找到了一系列解决方法。无论如何,你需要将
fakeApiCall
创建放在钩子中,在那里你等待承诺。如果我记得正确的话,对于给定的一对依赖项,
useMemo
返回一个值。因此,理想情况下,您应该传递依赖项。另外,
useMemo(()=>{},[])
不是
组件将挂载
。请尝试
useffect(()=>{},[])
,因为应该在安装组件后提取API数据。否则,组件中可能存在延迟
usemo
用于记忆值,应该没有副作用。我认为您希望使用
useffect
钩子来初始化状态。另外,出于所有实际目的,
componentWillMount
已被弃用,请使用与
componentDidMount
等效的
useffect
并带有空的依赖项数组。@drewerese但是如果我使用
useffect
,它将不会在服务器端触发,并且我不能只在客户端获取数据。对吗,它得到了一个有点时髦的反应挂钩,安装,和固态继电器。谷歌搜索可以找到一系列解决办法。无论如何,你需要把
fakeApiCall
创建放在这个钩子里,在那里你
等待承诺。