为什么 useEffect 在没有依赖关系变化的情况下触发?

Why useEffect is triggering without dependency change?

我只想在 setCart 时触发 useEffect。但这并没有发生:

import React from 'react'
import { View } from 'react-native'

const CartScreen = () => {

    const [cart, setCart] = React.useState([])

    React.useEffect(() => {
        console.log('test');
    }, [cart])

    return (
        <View>
        </View>
    )
}

export default CartScreen;

输出:测试

它甚至没有触及购物车状态就触发

useEffect 将始终 运行 首次呈现组件时。如果在更改状态后您只想 运行 一些代码,您可以只使用一个 if 语句来检查

import React from 'react'
import { View } from 'react-native'

const CartScreen = () => {
    const [cart, setCart] = React.useState([])

    React.useEffect(() => {
        if(cart.length > 0)
            console.log('test')
    }, [cart])

    return (
        <View>
        </View>
    )
}

export default CartScreen;