this.setState不是一个函数,为什么它不起作用?

时间:2017-10-18 08:22:54

标签: javascript reactjs this

嗨我好不好用反应,我不明白为什么我的this.setState不在这里工作,而是在其他一些文件上。在我的其他文件上,它写的完全相同,但它可以工作但不在这里。有人可以告诉我为什么吗?

>>> int(hex(n), 16)
190096411054295805012706659640261275091

2 个答案:

答案 0 :(得分:3)

在这一行:

(function(prop) {

您正在创建一个新的闭包,基本上会丢失对正确的this对象的引用。您可以将其替换为:

((prop) => {

箭头功能保持正确的闭包完好无损。 但老实说,我不确定为什么在这种情况下你甚至需要它,你可以将代码直接放在if语句中,而不需要创建IIFE。

答案 1 :(得分:0)

'测试'函数似乎是一个事件处理程序。 事件处理程序中的this必须在组件构造函数中手动绑定,例如:

// inside constructor
this.test = this.test.bind(this)

之后this.setState将有希望发挥作用。