React native中的TextInput OnChange

时间:2017-07-05 06:10:18

标签: react-native

请帮帮我。我有TextInput,我的问题是当我输入数值时,该值将乘以某个数字。当我输入1000时,会将其保存为1000状态,但会将store保存为100。结果不同。

 <TextInput
  onChangeText={this.handle_bill_Amount}
  style={styles.input} 
  placeholder="Amount"
  value={this.state.Amount}
  keyboardType = 'numeric'
  enablesReturnKeyAutomatically={true}
  placeholderTextColor = "#824242"
  underlineColorAndroid="transparent">
 </TextInput>


  handle_bill_Amount = Amount => {
  this.setState({ Amount})
  let billamt = this.state.Amount;
  console.log(billamt);
  }

 constructor(props) {
    super(props);
    this.state = {
    Amount: '',
    }
    this.handle_bill_Amount = this.handle_bill_Amount.bind(this);
}

伙计们请帮助我!

2 个答案:

答案 0 :(得分:1)

this.setState 本质上是异步的,因此在下一个语句中是不确定的。因此,当您记录该值时,状态可能还没有更新的值。 因此,对于确定性行为,建议您使用第二个参数(即回调)来获取正确的状态。执行setState时会调用它。

this.setState({Amount}, () => console.log(this.state.Amount))

答案 1 :(得分:0)

我认为结果并没有什么不同,只是你的console.log会让你感到困惑。它将打印出100而不是1000,因为您正在设置新状态的函数内执行控制台日志。尝试在其他地方进行,例如在componentWillReceivePropscomponentWillUpdate,您会看到它没问题。

希望这有帮助。