React useEffect 在组件安装和依赖项更改上运行

cam*_*lle 3 reactjs react-native

我想知道如何在组件安装和依赖值更改中运行 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]);
Run Code Online (Sandbox Code Playgroud)

有没有办法使用一个 useEffect 来实现这一目标?

Shy*_*yam 10

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

useEffect(() => {})
Run Code Online (Sandbox Code Playgroud)

当组件第一次单独安装时运行

useEffect(() => {}, [])
Run Code Online (Sandbox Code Playgroud)

当第一次安装组件以及 someDependency 的值发生更改时运行。

useEffect(() => {}, [someDependency])
Run Code Online (Sandbox Code Playgroud)

您可以删除第一个useEffect