作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 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/
在 componentWillReceiveProps 函数内部我调用了另一个函数: componentWillReceiveProps(nextProps){ if(nextProps.cart
我是一名优秀的程序员,十分优秀!