【发布时间】:2020-04-21 20:47:25
【问题描述】:
我有一个包含 3 个数字字段的表单。用户可以输入数量和单价。然后会将最后一个字段中的总价显示为禁用字段。
我当前的代码在Total Price 输入字段中正确设置了值,但是无法设置状态。
例如,如果用户输入Quantity 等于4 和UnitPrice 到25。 this.state.TotalPrice 应该是 100
handleChangeQuantity(event) {
const { value } = event.target;
this.setState({ Quantity: value });
}
handleChangeUnitPrice(event) {
const { value } = event.target;
this.setState({ UnitPrice: value });
}
handleChangeTotalPrice(event) {
const { TotalPrice } = event.target.value;
this.setState({
TotalPrice: this.state.Quantity * this.state.UnitPrice
});
}
<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.Quantity * this.state.UnitPrice}
onChange={this.handleChangeExtendedPrice}
type="number"
className="phone validate"
name="Estimated Extended Price #1"
disabled
/>
</div>
【问题讨论】:
-
勾选这个在数量和单价变化时触发
handleChangeTotalPrice函数..codesandbox.io/s/react-typescript-starter-41ef3 -
@ManirajMurugan 它没有。当我更改数量或单价时,
handleChangeTotalPrice不会触发 -
除非您调用该函数,否则它不会触发。不,您在哪里调用
handleChangeTotalPrice,那么该函数将如何运行?分叉上面的代码沙箱并包含您的确切问题并详细解释需要..查看上面提供的沙箱控制台,同时更改数量和价格的值..状态中的TotalPrice值将被记录.. -
@ManirajMurugan 我在创建沙箱时遇到了麻烦。我的问题是使用
handleChangeTotalPrice有必要吗?我要做的就是当用户输入一个数量和单价来设置总价的状态。那么有没有更好的方法来保存呢? -
我已经发布了答案..很高兴为您提供帮助..
标签: javascript reactjs typescript react-native setstate