我想使用带有反应的复选框从我的列表中删除一个项目

I want to delete an item from my list using a checkbox with react

我正在尝试从我的待办事项列表中删除一个项目。到目前为止,这是我的代码。我想我在父代码上做错了什么。我需要帮助。错误说 "Unhandled Rejection (TypeError): Cannot read property 'props' of undefined"

import React from "react";

const List = props => (
  <ul>
    {props.items.map((item, index) => (
      <li key={index}>
        <input
          onClick={this.props.removeTodo.bind(null, item)}
          type="checkbox"
        />
        {item}
      </li>
    ))}
    <style jsx>{`
      ul {
        list-style-type: none;
      }
    `}</style>
  </ul>
);
export default List;

import React, { Component } from "react";
import List from "./List";

export default class App extends Component {
  state = {
    term: "",
    items: []
  };

  onChange = event => {
    this.setState({ term: event.target.value });
  };

  onSubmit = event => {
    event.preventDefault();
    this.setState({
      term: "",
      items: [...this.state.items, this.state.term]
    });
  };

  removeTodo(name) {
    const filteredItems = this.state.items.filter(item => item !== name);
    this.setState({
      items: [...filteredItems]
    });
  }

  render() {
    return (
      <div>
        <form onSubmit={this.onSubmit}>
          <input value={this.state.term} onChange={this.onChange} />
          <button>Submit</button>
        </form>
        <List
          items={this.state.items}
          removeTodo={this.removeTodo.bind(this)}
        />
      </div>
    );
  }
}

List是一个函数组件,所以你可以只写props.removeTodo而不是this.props.removeTodo,因为props是传递给组件的第一个参数。

const List = props => (
  <ul>
    {props.items.map((item, index) => (
      <li key={index}>
        <input
          onClick={props.removeTodo.bind(null, item)}
          type="checkbox"
        />
        {item}
      </li>
    ))}
    <style jsx>{`
      ul {
        list-style-type: none;
      }
    `}</style>
  </ul>
);