【问题标题】:Set state and then reading the state shows the previous value [duplicate]设置状态然后读取状态显示之前的值[重复]
【发布时间】:2019-09-21 11:55:56
【问题描述】:

我有以下代码在文本框值更改时维护该值。但是,在调试 valueHasChangedEvent 时,下面显示的变量 x 行奇怪地保留了先前的值。有什么我做错了吗?显示的示例是当我在文本框中输入“test123”时。

谢谢

onChange 事件

<Input onChange={this.valueHasChangedEvent}
   type="text" 
   name="test" 
   id="test" />

方法

valueHasChangedEvent = (event) => {
    var self = this;
    const { name, value } = event.target;
    self.setState({test: value});  // value = 'test123'

    var x = self.state.test;  // x = 'test12'
}

【问题讨论】:

  • 绝对是重复的@MoshFeu

标签: javascript reactjs


【解决方案1】:

状态需要一些时间来改变,并且由于您在状态变化之前读取状态值,因此您将获得先前的值作为输出。所以需要在setState函数的回调中写入或者在shouldComponentUpdate()中读取

var x;
self.setState({test: value}, (x) => {
  x = self.state.test
});

【讨论】:

  • 请将 OP 参考现有答案,而不是再次回答。谢谢
猜你喜欢
  • 2017-10-17
  • 1970-01-01
  • 2017-01-18
  • 2017-06-23
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
  • 2020-06-14
  • 1970-01-01
相关资源
最近更新 更多