В последнем поле ввода totalPrice
вы можете установить значение как,
value={this.state.TotalPrice}
Таким образом, вы можете установить значение состояния в,
handleChangeTotalPrice = () => {
this.setState({
TotalPrice: this.state.Quantity * this.state.UnitPrice,
})
console.log(this.state.TotalPrice)
}
Таким образом, вы можете вызвать handleChangeTotalPrice
функция при каждом изменении количества и цены.
Значение состояния TotalPrice
будет обновлено соответствующим образом.
Вы можете изменить свой код, как показано ниже,
import React from 'react'
export class App extends React.Component {
state = {
Quantity: 0,
UnitPrice: 0,
TotalPrice: 0,
}
handleChangeQuantity = async (event: any) => {
const { value } = event.target
await this.setState({ Quantity: value })
this.handleChangeTotalPrice()
}
handleChangeUnitPrice = async (event: any) => {
const { value } = event.target
await this.setState({ UnitPrice: value })
this.handleChangeTotalPrice()
}
handleChangeTotalPrice = () => {
this.setState({
TotalPrice: this.state.Quantity * this.state.UnitPrice,
})
console.log(this.state.TotalPrice)
}
render() {
return (
<div>
<div>
<label>Quantity</label>
<input
value={this.state.Quantity}
onChange={this.handleChangeQuantity}
type="number"
className="phone validate"
name="Quantity #1"
maxLength={9}
pattern="[0-9]{0,5}"
/>
</div>
<div>
<label>Unit Price</label>
<input
value={this.state.UnitPrice}
onChange={this.handleChangeUnitPrice}
type="number"
className="phone validate"
name="Unit Price #1"
maxLength={15}
pattern="[0-9]{0,5}"
/>
</div>
<div>
<label>Total Price</label>
<input
value={this.state.TotalPrice}
type="number"
className="phone validate"
name="Estimated Extended Price #1"
disabled
/>
</div>
</div>
)
}
}
Рабочая песочница