Javascript 离子反应未捕获类型错误:分配给常量变量
此代码用于在更新react JS之前计算用于在类组件中工作的价格。现在我使用useState而不是this.state,我很难让我的旧代码正常工作。我主要有一个困难的时间设置状态值,并使用它们在检查价格功能 我也收到一个错误: 未捕获类型错误:分配给常量变量<代码>基本价格+=基本价格*(百分比/100) 如果有人能给我指出正确的方向,我将不胜感激!谢谢 旧代码Javascript 离子反应未捕获类型错误:分配给常量变量,javascript,reactjs,ionic-framework,calculator,react-hooks,Javascript,Reactjs,Ionic Framework,Calculator,React Hooks,此代码用于在更新react JS之前计算用于在类组件中工作的价格。现在我使用useState而不是this.state,我很难让我的旧代码正常工作。我主要有一个困难的时间设置状态值,并使用它们在检查价格功能 我也收到一个错误: 未捕获类型错误:分配给常量变量基本价格+=基本价格*(百分比/100) 如果有人能给我指出正确的方向,我将不胜感激!谢谢 旧代码 checkPrice = () => { debugger; if(this.state.package
checkPrice = () => {
debugger;
if(this.state.packageSelected === "one"){
this.state.basePrice = 159.998;
}else if(this.state.packageSelected === "two"){
this.state.basePrice = 416.998;
}else if(this.state.packageSelected === "three){
this.state.basePrice = 199.998;
}else if(this.state.packageSelected === "four"){
this.state.basePrice = 249.998;
}else if(this.state.packageSelected === "five"){
this.state.basePrice = 299.998;
}else if(this.state.packageSelected === "six"){
this.state.basePrice = 559.998;
}if(this.state.propertySqft > 2500){
let overage = this.state.propertySqft - 2000;
let percentage = Math.floor(overage / 500) * 10;
this.state.basePrice += this.state.basePrice * (percentage / 100);
}
this.setState({ totalPrice: Math.round(this.state.basePrice * 100) / 100 });
}
function checkPrice() {
debugger;
if(packageSelected === "one"){
setBasePrice(159.998);
}else if(packageSelected === "two"){
setBasePrice(416.998);
}else if(packageSelected === "three"){
setBasePrice(199.998);
}else if(packageSelected === "four"){
setBasePrice(249.998);
}else if(packageSelected === "five"){
setBasePrice(299.998);
}else if(packageSelected === "six"){
setBasePrice(559.998);
}if(propertySqft > 2500){
let overage = propertySqft - 2000;
let percentage = Math.floor(overage / 500) * 10;
basePrice += basePrice * (percentage / 100);
}
setTotalPrice(Math.round(basePrice * 100) / 100);
}
新代码
checkPrice = () => {
debugger;
if(this.state.packageSelected === "one"){
this.state.basePrice = 159.998;
}else if(this.state.packageSelected === "two"){
this.state.basePrice = 416.998;
}else if(this.state.packageSelected === "three){
this.state.basePrice = 199.998;
}else if(this.state.packageSelected === "four"){
this.state.basePrice = 249.998;
}else if(this.state.packageSelected === "five"){
this.state.basePrice = 299.998;
}else if(this.state.packageSelected === "six"){
this.state.basePrice = 559.998;
}if(this.state.propertySqft > 2500){
let overage = this.state.propertySqft - 2000;
let percentage = Math.floor(overage / 500) * 10;
this.state.basePrice += this.state.basePrice * (percentage / 100);
}
this.setState({ totalPrice: Math.round(this.state.basePrice * 100) / 100 });
}
function checkPrice() {
debugger;
if(packageSelected === "one"){
setBasePrice(159.998);
}else if(packageSelected === "two"){
setBasePrice(416.998);
}else if(packageSelected === "three"){
setBasePrice(199.998);
}else if(packageSelected === "four"){
setBasePrice(249.998);
}else if(packageSelected === "five"){
setBasePrice(299.998);
}else if(packageSelected === "six"){
setBasePrice(559.998);
}if(propertySqft > 2500){
let overage = propertySqft - 2000;
let percentage = Math.floor(overage / 500) * 10;
basePrice += basePrice * (percentage / 100);
}
setTotalPrice(Math.round(basePrice * 100) / 100);
}
不要直接改变你的状态,我猜你声明了你的
basePrice
像const[basePrice,setBasePrice]
,你正在做basePrice+=basePrice*(百分比/100)代码>。你正试图给一个const
Correct赋值,这正是我所做的。那么,我是否应该创建另一个像newBasePrice这样的州,并将其设置为setNewBasePrice(basePrice*(百分比/100)),作为一个州,您为什么需要它?另外,我建议您创建一个packageSelected
到price
的映射。你的代码看起来重复,读起来很不舒服。不要直接改变你的状态,我猜你声明了你的basePrice
像const[basePrice,setBasePrice]
,你正在做basePrice+=basePrice*(百分比/100)代码>。你正试图给一个const
Correct赋值,这正是我所做的。那么,我是否应该创建另一个像newBasePrice这样的州,并将其设置为setNewBasePrice(basePrice*(百分比/100)),作为一个州,您为什么需要它?另外,我建议您创建一个packageSelected
到price
的映射。你的代码看起来很重复,读起来很不舒服。