我对React中的设置状态的回调函数有一个奇怪的问题。在React 15中一切正常,但是一旦我将react版本升级到16,设置状态的回调函数就不会被触发。我已经尝试了几乎所有内容,但无法清楚找出导致此问题的原因。
我尝试在set状态方法中使用匿名函数将函数绑定到构造函数中,但实际上没有一个起作用。
然后我尝试将react版本降级到15,然后运行该项目,并且能够触发回调方法(通过在回调函数中放置警报框进行测试)。
这是我在示例项目中使用的确切代码:
在单击按钮时调用此功能
incrementCounter() {
this.setState({
currentCount: this.state.currentCount + 1
}, this.callbackfuncsajad.bind(this));
}
这是设置状态的回调函数
callbackfuncsajad = () => {
alert('in the callback');
}
这是我的package.json,用于检查版本是否不匹配:
请注意: 我正在为我的项目使用Visual Studio 2017 ASP.NET的默认React.JS模板。默认情况下,该项目随附React 15和打字稿。
如果有人能弄清楚这个问题,将会为您带来很大的帮助。
谢谢。
答案 0 :(得分:0)
嗨,我认为这是由于父级上下文所致,所以请尝试这样的事情。
incrementCounter() {
this.setState({
currentCount: this.state.currentCount + 1
}, () => { this.callbackfuncsajad() });
}
希望有帮助。 如果您仍然遇到此问题,请共享代码以进行适当的扣除。