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;