Я использую Next. js и у меня есть следующие функции:
componentDidMount = () => {
//Retrieves cart from storage
let self = this
this.updateCart(Store.getCart(), self)
...
}
updateCart = (cart, self) => {
var tempCartCost = 0;
var tempCartItems = 0;
var {deliveryCost} = this.state;
if (cart.length > 0) {
cart.forEach(item => {
tempCartCost = tempCartCost + (item.quantity * item.price)
tempCartItems = tempCartItems + (item.quantity)
})
} else {
this.setStep(1) //Falls back to initial page
}
var newState = {
cartCost: tempCartCost,
authorizedPrice: Math.ceil((tempCartCost + deliveryCost) * 1.1),
shoppingCart: cart,
cartItems: tempCartItems
}
self ? this.setState(newState) : this.setState(newState)
(cart !== Store.getCart()) && Store.setCart(cart)
}
Теперь код работает. Однако я не понимаю, почему. Я думал, что если я удалю let self = this
и изменит self ? this.setState(newState) : this.setState(newState)
на this.setState(newState)
, это будет работать. Но это не так.
Может кто-нибудь объяснить мне, что здесь происходит? ??♀️