所以,我定义了一个状态:
const [quantity, setQuantity] = useState(1);
我在班级组件中对其进行了如下更新:
componentDidUpdate(prevProps, prevState) {
if (this.props.cartItem.quantity !== prevProps.cartItem.quantity) {
let quantity = this.props.cartItem.quantity;
this.setState((state, props) => {
return {
quantity
}}
);
}
}
componentDidMount() {
this.setState((state, props) => {
return {
quantity: props.cartItem.quantity
}}
);
}
我通过以下操作实现的componentDidMount方面:
useEffect(() => {
setQuantity(parseInt(props.cartItem.quantity));
});
如何使用useEffect()
实现相同的componentDidUpdate()功能?
答案 0 :(得分:1)
您只需在useEffect挂钩中添加一个“依赖项”即可。
const { cartItem } = props;
useEffect(() => {
setQuantity(parseInt(cartItem.quantity));
}, [cartItem]);
这意味着,每当cartItem
道具更改时,都会触发您的状态更新,包括组件安装状态。