无法在自定义React挂钩中的异步函数外使用关键字“ await”

时间:2019-12-24 20:33:11

标签: javascript reactjs react-native async-await react-hooks

我正在尝试创建一个自定义钩子,但是我不断收到getToken()函数的错误:

  

不能在异步函数外使用关键字“ await”

如何解决这个问题?

export const useExistingToken = async () => {
    const [existingToken, setExistingToken] = useState('')
    const [tokenLocallyExists, tokenLocalCheck] = useState()
    useEffect(() => {
        if (!tokenLocallyExists) {
            const token = await getToken() // issue here
            setExistingToken(token)
        }
    }, [])

    return [existingToken, tokenLocalCheck]
}

1 个答案:

答案 0 :(得分:2)

您不能在useEffect方法上进行异步/等待。即使将函数包装在useEffect周围,它也不会使用async / await。

不过请检查一下!

https://github.com/facebook/react/issues/14326