Javascript React标记基于道具值的计算

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    

我有一个组件,我在两种情况下进行订单估算计算(数量乘以价格)

1) 在生命周期方法中

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
    })
}}