Javascript React标记基于道具值的计算
我有一个组件,我在两种情况下进行订单估算计算(数量乘以价格) 1) 在生命周期方法中Javascript React标记基于道具值的计算,javascript,reactjs,lifecycle,setstate,Javascript,Reactjs,Lifecycle,Setstate,我有一个组件,我在两种情况下进行订单估算计算(数量乘以价格) 1) 在生命周期方法中 componentDidMount(){ if (this.props.isRestarted) { this.setState({ orderEstimation: this.props.formData.valNominal * this.props.formData.priceLimit, }) } 2) 在某种情况下 <FormAmountField
componentDidMount(){
if (this.props.isRestarted) {
this.setState({
orderEstimation: this.props.formData.valNominal * this.props.formData.priceLimit,
})
}
2) 在某种情况下
<FormAmountField
label={}
placeholder={}
value={this.state.price}
onChangeText={(value) => {
this.setState({
price: value,
orderEstimation: parseFloat(value) * parseFloat(this.state.quantity)
})
}}
{
这是我的国家({
价格:价值,
orderEstimation:parseFloat(值)*parseFloat(this.state.quantity)
})
}}
正如您在这两种情况下所看到的:orderEstimation:parseFloat(value)*parseFloat(this.state.quantity)
当this.props.selectedTitleDetails.exchangeHost==“this_TEXT”
我希望计算更改parseFloat(value)*parseFloat(this.state.quantity)/100
如何在这两种情况下应用此更改?在生命周期和方法中?您可以使用状态变量来标记-
exchangeValue
。例如:
constructor() {
this.state = {
exchangeValue: 1
}
}
componentDidUpdate(prevProps) {
if (prevProps.selectedTitleDetails.exchangeHost !== this.props.selectedTitleDetails.exchangeHost
&& this.props.selectedTitleDetails.exchangeHost === 'THIS_TEXT') {
this.setState({
exchangeValue: 100
})
}
}
然后将this.state.exchangeValue
添加到计算中
componentDidMount(){
if (this.props.isRestarted) {
this.setState({
orderEstimation: this.props.formData.valNominal * this.props.formData.priceLimit / this.state.exchangeValue,
})
}
及
为什么不使用带有开关盒的函数呢。
onChangeText={(value) => {
this.setState({
price: value,
orderEstimation: parseFloat(value) * parseFloat(this.state.quantity) / this.state.exchangeValue
})
}}