我的小todo应用程序存在问题。每次我试图删除一个项目有一个错误Cannot read property 'todos' of undefined
“这个”在我的类中是undefined
为什么this
在里面addTodo
约束,但不removeTodo
?
触发都是在这里完成:<button onClick={() => removeTodo(id)}> X </button>
演示上JSfiddle
感谢。
我的小todo应用程序存在问题。每次我试图删除一个项目有一个错误Cannot read property 'todos' of undefined
“这个”在我的类中是undefined
为什么this
在里面addTodo
约束,但不removeTodo
?
触发都是在这里完成:<button onClick={() => removeTodo(id)}> X </button>
演示上JSfiddle
感谢。
您可以将removeTodo
置入属性初始化的箭头函数或使用action.bound
修饰符。您还可以使用MobX阵列replace这样你就不会失去参考:
removeTodo = (id) => {
var filtered = this.todos.filter(todo => todo.id !== id);
this.todos.replace(filtered);
}
或者:他们当量/更换:
@action.bound
removeTodo(id) {
var filtered = this.todos.filter(todo => todo.id !== id);
this.todos.replace(filtered);
}
谢谢你现在正在工作。我只是将'''action.bound()'''添加到我的函数中,并且所有内容都按预期工作。 –
@jonathandion太棒了! – Tholle
[Arrow功能VS函数声明/表达式的可能的复制? ](http://stackoverflow.com/questions/34361379/arrow-function-vs-function-declaration-expressions-are-they-equivalent-exch) – Andreas