嗨我好不好用反应,我不明白为什么我的this.setState不在这里工作,而是在其他一些文件上。在我的其他文件上,它写的完全相同,但它可以工作但不在这里。有人可以告诉我为什么吗?
>>> int(hex(n), 16)
190096411054295805012706659640261275091
答案 0 :(得分:3)
在这一行:
(function(prop) {
您正在创建一个新的闭包,基本上会丢失对正确的this
对象的引用。您可以将其替换为:
((prop) => {
箭头功能保持正确的闭包完好无损。
但老实说,我不确定为什么在这种情况下你甚至需要它,你可以将代码直接放在if
语句中,而不需要创建IIFE。
答案 1 :(得分:0)
'测试'函数似乎是一个事件处理程序。
事件处理程序中的this
必须在组件构造函数中手动绑定,例如:
// inside constructor
this.test = this.test.bind(this)
之后this.setState
将有希望发挥作用。