首页 > 解决方案 > Ionic React Uncaught TypeError:赋值给常量变量

问题描述

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

我也收到一个错误

未捕获的类型错误:分配给常量变量.......basePrice += basePrice * (percentage / 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); 
  }

标签: javascriptreactjsionic-frameworkcalculatorreact-hooks

解决方案


推荐阅读