设置状态然后读取状态显示之前的值[重复]
Posted
技术标签:
【中文标题】设置状态然后读取状态显示之前的值[重复]【英文标题】: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 【参考方案1】:状态需要一些时间来改变,并且由于您在状态变化之前读取状态值,因此您将获得先前的值作为输出。所以需要在setState函数的回调中写入或者在shouldComponentUpdate()中读取
var x;
self.setState(test: value, (x) =>
x = self.state.test
);
【讨论】:
请将 OP 参考现有答案,而不是再次回答。谢谢以上是关于设置状态然后读取状态显示之前的值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在javascript中读取iFrame(不在同一个域-YouTube)中的div状态[重复]