ES6新语法的使用,有关箭头函数的。。 10C
//删除当前的任务,传递给TodoItem.的方法
deleteTodo = (index) => {
    this.state.todos.splice(index, 1);
    this.setState({todos: this.state.todos});
    this.db.set('todos', this.state.todos);
}
// 删除当前的任务,传递给TodoItem的方法
// deleteTodo(index){
//     this.state.todos.splice(index, 1);
//     this.setState({todos: this.state.todos});
//     this.db.set('todos', this.state.todos);
// }
render(){
    var props = {
        todoCount: this.state.todos.length || 0,
        todoDoneCount: (this.state.todos && this.state.todos.filter((todo)=>todo.isDone)).length || 0
    };
    return (
        <div className="panel">
            <TodoHeader addTodo={this.addTodo.bind(this)}/>
            <TodoMain deleteTodo={this.deleteTodo(index)} todos={this.state.todos} changeTodoState={this.changeTodoState.bind(this)}/>
            <TodoFooter isAllChecked={this.state.isAllChecked} clearDone={this.clearDone} {...props} changeTodoState={this.changeTodoState.bind(this)}/>
            <AntDesignHeader />
        </div>
    )
}

这段代码有问题,我将第一个function,deleteTodo的那个方法修改之后,提示出错,错误结果如下所示:我的理解是箭头函数改错了,不知道怎么修改了。。。

图片说明

4个回答

 deleteTodo = (index) => {
    this.state.todos.splice(index, 1);
    this.setState({todos: this.state.todos});
    this.db.set('todos', this.state.todos);
};这里加个分号看看
还不行就检查你的函数的参数和类型
suwu150
suwu150 不行啊。。。参数不是从点击事件传进去的吗
3 年多之前 回复

你那个报错是浏览器报错还是编辑器的?es6比较新,你确认你的编辑器支持es6的语法才行。

suwu150
suwu150 支持的,运行过es6语法的,主要是我想把bind绑定的function改做箭头函数
3 年多之前 回复

deleteTodo后面=号改成:号,结束后加,号,如果是好的ide,应该会直接报错的

suwu150
suwu150 不行的,变为:直接报错
3 年多之前 回复

图片说明

suwu150
suwu150 我的意思是用箭头函数来表示,将我的写法改做箭头函数
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问