gpt4 book ai didi

javascript - performUpdateIfNecessary : Unexpected batch number

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:40:49 24 4
gpt4 key购买 nike

componentWillReceiveProps 函数内部我调用了另一个函数:

componentWillReceiveProps(nextProps){

if(nextProps.cart){
var cart = nextProps.cart;
this.setState({cart:cart,
offCart:cartHelper.getOffCart(cart),
totalPay:cartHelper.getTotalPayCart(cart)});

this.useFinance()//at this line makes this error

}

useFinance(){

if(this.state.useFinance)
{
this.setState({useFinance:false})
}else{
if(this.state.totalPay > this.state.user.user.finance)
{
this.setState({useFinance:false})
}else{
this.setState({useFinance:true})
}
}

}

我正在使用 react-redux,当购物车更新时,我应该调用 useFinance 函数。

我收到此错误消息:

warning.js?8a56:33 Warning: performUpdateIfNecessary: Unexpected batch number (current 2, pending 1)

最佳答案

如果值仍然相同,请不要每次都在 componentWillReceiveProps 中调用 setState。检查从 nextprops 接收的值和 state 中的实际值,如果它们不相等,则调用 setState

componentWillReceiveProps(nextProps) {

if (nextProps.cart && nextProps.cart != this.props.cart) { //Do this in case of object => JSON.stringify(nextProps.cart) != JSON.stringify(this.props.cart)
var cart = nextProps.cart;
this.setState({
cart: cart,
offCart: cartHelper.getOffCart(cart),
totalPay: cartHelper.getTotalPayCart(cart)
});
this.useFinance() //at this line makes this error

}
}

useFinance() {

if (this.state.useFinance) {
this.setState({
useFinance: false
})
} else {
if (!(this.state.totalPay > this.state.user.user.finance)) {
this.setState({
useFinance: true
})
}
}

}

关于javascript - performUpdateIfNecessary : Unexpected batch number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49840637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com