我知道有类似的问题,但他们都没有帮助我修复我的。this.setState不是一个函数,反应原生
所以这是我的问题。
我正在与本机反应并使用flux调度器。我的应用程序调度员的派遣和注册工作正常。我的问题是,当我想改变/设置调度寄存器函数内部的状态时,我总是得到错误消息this.setState()不是一个函数。当然,我认为这一定是一个有约束力的问题,然后(写在es6中),所以我尝试了各种各样的绑定“这个”,但我仍然无法得到它的工作。有没有人知道为什么?
这里是代码位不起作用:
testDispatcher() {
AppDispatcher.register((action) => {
if (action.action === TEST_ACTION) {
// I tried setting state inside here
this.setState({
view: action.view
}).bind(this); // with or without this bind doesn't make a difference
// I also tried having a function outside of this function where I set the state.. this doesn't work either.
//this.updateView('home').bind(this);
console.log('dispatch register');
}
});
}
我也试图控制台登录“本”我的注册函数中和“这个”不回我的应用程序类。
嗨,谢谢你的回复。但是我不想将它绑定到我的testDispatcher函数中的AppDispatcher函数?如果我不这样做,我最终会将调度程序的对象放在那里,然后我也不能使用this.setState。这很奇怪,因为当我使用箭头函数并记录“this”时,我得到了我的类,这是我想要的,但它仍然不会让我使用this.setState。 – alexjson
我解决了!我没有从我的类中的React Component扩展,因此setState不是一个函数..哦,男孩..对不起,我应该发布更多的代码,然后这会更明显。 – alexjson