Javascript 更新本地存储中的项时出现问题
在这里的一位用户的帮助下,我能够制作一个组件,但是现在我需要该组件的一个变体。该组件是一个递增/递减按钮,包含一些详细信息: 1-按钮位于来自API的数组中 2-增量/减量必须遵循银行中定义的规则,即项目的最大数量 3-当其中一个项目存在时,带有“购买”按钮的页脚应自动显示 4-当我单击Buy按钮时,项目将保存在localStorage中,并打开一个新屏幕,调用购物车,该购物车将包含相同的递增/递减按钮,但在列表中选择了保存在localStorage中的项目,并且按钮应递增/递减项目,并单击确认购买按钮,必须更新localStorage。 在第3项和第4项的一半之前,我都能做到,但我的递增/递减按钮有问题。下面是我的组件的代码 //更改数量按钮 从“React”导入React; 导入“/ChooseQuantity.css”; const ChooseQuantity={value,onChange,additionEnabled}=>{ const shouldIncrement=additionEnabled; 常数应减量=值>0; 常数减量==>{ 如果应该减量{ onchange值-1; } } 常量增量==>{ 如果应该增加{ onchange值+1; } } 常量递减按钮=是否应该递减? : 常量递增按钮=应该递增吗? : 回来 {递减按钮} {value} {递增按钮} } ChooseQuantity.defaultProps={ 值:0, additionEnabled:true, }Javascript 更新本地存储中的项时出现问题,javascript,reactjs,local-storage,Javascript,Reactjs,Local Storage,在这里的一位用户的帮助下,我能够制作一个组件,但是现在我需要该组件的一个变体。该组件是一个递增/递减按钮,包含一些详细信息: 1-按钮位于来自API的数组中 2-增量/减量必须遵循银行中定义的规则,即项目的最大数量 3-当其中一个项目存在时,带有“购买”按钮的页脚应自动显示 4-当我单击Buy按钮时,项目将保存在localStorage中,并打开一个新屏幕,调用购物车,该购物车将包含相同的递增/递减按钮,但在列表中选择了保存在localStorage中的项目,并且按钮应递增/递减项目,并单击确认
export default ChooseQuantity这可能不是您问题的完整答案,但您在componentDidMount中造成了一场地狱般的灾难,尤其是多次调用This.setState。记住一件事——每次调用this.setState时,都是在渲染组件。 另外,this.setState不会返回承诺,所以等待它。setState{…}没有任何意义 因此,组件的第一个改进是:
componentDidMount() {
const cart = JSON.parse(localStorage.getItem('cart'));
const {
events,
events: { tickets },
total
} = cart;
this.setState({
cart,
events,
banner_app: events.banner_app,
event_name: events.event_name,
priceTotal: total.price,
quantity: total.totalQuantity,
lot: tickets.lot,
maxTotalItems: events.max_purchase,
selectedLots: tickets.lot,
});
}
this.setStateprevState=>{this.setState{SelectedQuantilities:{…prevState.SelectedQuantilities,[${ticketName}${separator}${TicketPrevState}${separator}${ticketUniqueNumber}${separator}${lotType}${separator}${lotNumber}{separator}${lotUniqueNumber}${separator}${lotPriceTax}:newValue}您正在另一个设置状态中调用一个设置状态,将其更改为单个设置状态,它应该可以工作。抱歉,@eshunsharma,我认为问题不在那里,因为此部分正在工作