Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 离子反应未捕获类型错误:分配给常量变量_Javascript_Reactjs_Ionic Framework_Calculator_React Hooks - Fatal编程技术网

Javascript 离子反应未捕获类型错误:分配给常量变量

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

此代码用于在更新react JS之前计算用于在类组件中工作的价格。现在我使用useState而不是this.state,我很难让我的旧代码正常工作。我主要有一个困难的时间设置状态值,并使用它们在检查价格功能

我也收到一个错误

未捕获类型错误:分配给常量变量<代码>基本价格+=基本价格*(百分比/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); 
  }

新代码


 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
的映射。你的代码看起来很重复,读起来很不舒服。