【问题标题】:Calculating the total price in React计算 React 中的总价格
【发布时间】:2021-01-27 13:15:03
【问题描述】:

所以这是我第一次尝试使用 React。 我必须计算预订的(总)价格。

预订价格由几个因素决定:

  • 船长:每米 1.25 欧元
  • 人数:每人1欧元
  • 用电:每天 1.25 欧元

假设船长 10m,船上有 2 个人用电。他们呆了2天。计算如下:

  • 船长(10) * 1.25 * 2 = 25
  • 人数(2) * 1 * 2 = 4
  • UseOfElectricity(true) = 1.25 * 2 = 2.5
  • total_price = €25 + €4 + €2.5 = €21.5

我尝试在我的代码中实现它,如下所示:

import React, { Component } from 'react'
import BoatForm from "./BoatForm";
import StayForm from "./StayForm";

export default class PriceCalculator extends Component {
    /**
     * So, we created a form for the customers so that they can register their boat.
     * Now we want to let them know how much their reservation costs.
     * The size of the boat, amount of people, amount of days and use of electricity are all parameters.
     */

    constructor(props) {
        super(props)
        this.state = {
            boat_length: '',
            amount_of_people: '',
            arrival_date: '',
            leave_date: '',
            use_of_electricity: '',
            box_number: ''
        }
    }

    /**
     * We use date fields in our form to define the stay date of the customer.
     * That means we have to calculate the days ourselves.
     */

    calculateStayTime() {
        const ArrivalDate = new Date(this.state.arrival_date);
        const LeaveDate = new Date(this.state.leave_date);
        // calculate difference
        const DiffTime = Math.abs(LeaveDate - ArrivalDate);
        const DiffDays = Math.ceil(DiffTime / (1000 * 60 * 60 * 24));
        let AmountOfDays = DiffDays;
        return AmountOfDays;
    }

    /**
     *  Prices per day:
     *  - Price per meter: 1,25
     *  - Price per person: 1
     *  - Price for using electricity: 1,25
     */

    calculatePrice() {
        const BoatLength = this.state.boat_length;
        const meter_price = 1.25;
        const Persons = this.state.amount_of_people;
        const persons_price = 1;

        let price_per_day = BoatLength * meter_price + Persons * persons_price;


        const electricity_price = 1.25;
        const use_of_electricity = true;
        // ? = if statement
        price_per_day = price_per_day + (use_of_electricity ? electricity_price : 0);
        // const total_price = price_per_day * AmountOfDays;
    }

}

我很难将变量从 calculateStayTime() 传递给 calculatePrice()。谁能帮助我如何将我的计算公式化为 React.JS?

【问题讨论】:

    标签: javascript reactjs oop components calculator


    【解决方案1】:

    您需要在calculatePrice 中使用calculateStayTime 的结果。您可以将停留时间值分配给一个变量,但我可能只是替换最后一行:// const total_price = price_per_day * AmountOfDays; 可以替换为 const total_price = price_per_day * this.calculateStayTime();,这应该可以满足您的需求。

    【讨论】:

    • 谢谢!它确实有帮助。现在 StayTime 与价格挂钩 :)
    • @epnic 如果它解决了您的问题,请接受答案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多