在 React 中计算总价
Calculating the total price in React
所以这是我第一次尝试 React。
我必须计算预订的(总)价格。
保留价格由以下几个因素决定:
- 船长:每米 1.25 欧元
- 人数:每人€1
- 电费:每天 1.25 欧元
假设船长 10 米,船上有 2 个人用电。他们待了 2 天。计算如下:
- 船长(10) * 1.25 * 2 = 25
- 人数(2) * 1 * 2 = 4
- 用电(真)= 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?
您需要在calculatePrice
中使用calculateStayTime
的结果。您可以将停留时间值分配给一个变量,但我可能只替换最后一行:// const total_price = price_per_day * AmountOfDays;
可以替换为 const total_price = price_per_day * this.calculateStayTime();
,这应该可以满足您的需求。
所以这是我第一次尝试 React。 我必须计算预订的(总)价格。
保留价格由以下几个因素决定:
- 船长:每米 1.25 欧元
- 人数:每人€1
- 电费:每天 1.25 欧元
假设船长 10 米,船上有 2 个人用电。他们待了 2 天。计算如下:
- 船长(10) * 1.25 * 2 = 25
- 人数(2) * 1 * 2 = 4
- 用电(真)= 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?
您需要在calculatePrice
中使用calculateStayTime
的结果。您可以将停留时间值分配给一个变量,但我可能只替换最后一行:// const total_price = price_per_day * AmountOfDays;
可以替换为 const total_price = price_per_day * this.calculateStayTime();
,这应该可以满足您的需求。