【发布时间】:2019-02-20 20:44:26
【问题描述】:
所以,我有一个名为“method”的组件状态的属性,该属性设置为空字符串(“”),还有一个名为 selectMethod ==>
的函数 selectMethod = (e) => {
const x = e.target.getAttribute("return-data");
this.setState({method: x});
console.log(this.state.method);
}
当我点击一个按钮时触发
<button onClick={this.selectMethod} return-data="test">SELECT</button>
我希望在控制台中显示的是“测试”。但是当我单击按钮时,只显示空字符串,然后当我再次单击按钮时,显示“测试”字样。 我想要做的是让属性方法设置为“测试”之前得到控制台,并让测试从第一次点击就显示在控制台上。我不知道它为什么这样做。我的意思是“方法”应该在得到安慰之前设置为“测试”。
【问题讨论】:
-
从@RoseRobertson 的回答中可以看出,您可以在
setState方法中使用回调。但是,有一种更简单的方法,至少对我来说是这样的:) 在render方法中记录您的状态。 -
我还是 React 的初学者,所以我不确定我是否明白你的意思。可以举个例子吗?
-
这里只是
console.log(x)-console.log(this.state.method)在render中是有意义的,这是由状态变化所强制的
标签: reactjs ecmascript-6 react-props