React Application没有正确更新this.state

时间:2018-04-24 19:23:12

标签: javascript reactjs frontend web-frontend

我目前正在努力获得我的全栈,并决定扩展我对JavaScript的了解。这个决定最终把我带到了React,但我 - 如上所述 - 这个库中的菜鸟。但这只意味着我必须更多地使用这项技术才能在所述知识方面取得进展。

我正在处理的实际问题乍一看似乎很简单;显然我的反应应用程序没有正确更新this.state。我知道React中的方法setState是异步的,所以当触发setState()的内置第二个回调时触发其他自定义方法。这项技术显然不是最好的技术,因为它根本没有按计划运作。

我的应用程序是关于一个带有基本数学运算符的简单计算器。我想实现一个功能,在“输入”下实时跟踪给定表达式的潜在结果,但我的方法不起作用,尽管我认为它离真正的解决方案并不太远。正确的函数是在正确的时间触发的,但this.state.result和this.state.resultExpression显然都没有,因为它们没有显示在渲染的框中。我的updateDigit()函数按计划工作,但是在点击“等于”按钮后显示结果时,几乎没有任何显示 - 甚至整个输入的输入都消失了。

这是我的代码:

spark.conf.set("spark.sql.sources.partitionOverwriteMode","dynamic")
data.write.mode("overwrite").insertInto("partitioned_table")

您是否知道为什么会发生这种情况,您是否真的遇到过类似的情况,或者您甚至可以提供替代方案/解决方案?

提前感谢您提供各种帮助,J0nny

1 个答案:

答案 0 :(得分:0)

我看了你的代码,我可以看到你有很多setState函数。

每次调用setstate时,您的组件都会再次渲染,而您的代码无法完成当前的流程。

如果您需要在setstate函数之后执行任何操作,是否需要将下一个函数设置为setstate函数的回调,例如:

this.setState({value:1}, callBack)

我希望这有帮助 如果你想要我们可以谈论出现或者其他事情,我可以更好地向你解释。