首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我在尝试执行以下代码时变得未定义

我在尝试执行以下代码时变得未定义
EN

Stack Overflow用户
提问于 2019-05-31 09:09:54
回答 4查看 42关注 0票数 0

TypeError:无法读取未定义的属性“”bind“”

得到这个错误,请帮帮我。

我尝试在发生onchange事件时选中和取消选中该复选框

请在这里找到代码https://codesandbox.io/s/competent-mendeleev-cd881

EN

回答 4

Stack Overflow用户

发布于 2019-05-31 09:14:09

在render中,您应该确保声明为函数updated code

票数 0
EN

Stack Overflow用户

发布于 2019-05-31 09:14:56

因为在循环中使用this会改变当前对象的上下文。

this赋值给另一个变量,并改用该变量。

本例中为self

See solution here

票数 0
EN

Stack Overflow用户

发布于 2019-05-31 09:16:01

尝试在渲染中添加一个引用this的常量,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from "react";
import todosData from "./TodoData";
import ToDoItems from "./ToDoItems";

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      todos: todosData
    };
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange(id) {
    this.setState(prevState => {
      const updateTodo = prevState.todos.map(todo => {
        if (todo.id === id) {
          todo.completed = !todo.completed;
        }
        return todo;
      });
      return {
        todos: updateTodo
      };
    });
  }
  render() {
    const that = this;
    const todoData = this.state.todos.map(function(item) {
      return (
        <ToDoItems key={item.id} item={item} handleChange={that.handleChange} />
      );
    });
    return <div>{todoData}</div>;
  }
}
export default App;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56392027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文