小编Yas*_*chi的帖子

如何在 React 的 UseEffect() 中调用异步函数?

我想调用一个异步函数并获取我的 UseEffect 的结果。

我在网上找到的fetch api例子是直接在useEffect函数中制作的。如果我的 URL 发生变化,我必须修补我所有的提取。

当我尝试时,我收到一条错误消息。

这是我的代码。


    async function getData(userId) {
        const data = await axios.get(`http://url/api/data/${userId}`)
            .then(promise => {
                return promise.data;
            })
            .catch(e => {
                console.error(e);
            })
            return data;
    }


    function blabla() {
        const [data, setData] = useState(null);

        useEffect(async () => {
            setData(getData(1))
        }, []);

        return (
            <div>
                this is the {data["name"]}
            </div>
        );
    }

Run Code Online (Sandbox Code Playgroud)

index.js:1375 警告:除了用于清理的函数之外,效果函数不得返回任何内容。看起来你写了 useEffect(async () => ...) 或者返回了一个 Promise。相反,在您的效果中编写异步函数并立即调用它:

useEffect(() => {
  async function fetchData() {
    // You can await here
    const response = …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous reactjs react-hooks

50
推荐指数
4
解决办法
4万
查看次数

标签 统计

asynchronous ×1

javascript ×1

react-hooks ×1

reactjs ×1