首页 > 解决方案 > React useEffect 在组件安装和依赖项更改上运行

问题描述

我想知道如何在组件安装和依赖值更改中运行 useEffect 副作用。目前我正在使用两个 useEffects 来实现这一点。

useEffect(() => {
    let isMounted = true;
    const getUsers = async () => {
        try {
            const userResponse = await api.get('/users');
            if (isMounted) { setUsers(userResponse.data); }
        } catch (error) {
            console.log(error);
        }
    };
    getUsers();
}, []);

useEffect(() => {
    let isMounted = true;
    const getUsers = async () => {
        try {
            const userResponse = await api.get('/users');
            if (isMounted) { setUsers(userResponse.data); }
        } catch (error) {
            console.log(error);
        }
    };
    getUsers();
}, [netInfo]);

无论如何使用一个useEffect来实现这一点?

标签: reactjsreact-native

解决方案


在组件第一次安装和每次重新渲染时运行

useEffect(() => {})

在组件第一次单独挂载时运行

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

当组件第一次挂载和 someDependency 的值改变时运行。

useEffect(() => {}, [someDependency])

您可以删除第一个useEffect.


推荐阅读