为什么 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;
我只想在 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;