【问题标题】:How to delete multi selected check-boxes when a delete button is clicked in reactJs在reactJs中单击删除按钮时如何删除多选复选框
【发布时间】:2019-03-22 08:16:19
【问题描述】:

我在顶部有多个复选框和一个删除按钮。做出选择后,我应该删除选中的复选框。我怎样才能在 React Js 中做到这一点。

【问题讨论】:

  • 你能发布一些示例代码吗?
  • 我现在没有我的代码。我刚刚导入了带有一些用户数据的 JSON 文件。 UI 显示带有用户名的复选框和顶部的删除按钮。我需要删除单击删除按钮时选中的复选框。

标签: reactjs checkbox redux


【解决方案1】:

试试这个:

class App extends React.Component {
  state = {
      list: [
        { id: 1, label: 'Reading', value: false },
        { id: 2, label: 'Playing game', value: false },
        { id: 3, label: 'Listening to music', value: false },
        { id: 4, label: 'Watching TV', value: true }
      ]
  };

  handleChange = e => {
    const id = e.target.id;
    this.setState(prevState => {
      return {
        list: prevState.list.map(
          li => (li.id === +id ? { ...li,
            value: !li.value
          } : li)
        )
      };
    });
  };
  handleClick = () => {
    this.setState(prevState => {
      return {
        list: prevState.list.filter(li => !li.value)
      };
    });
  };
  render() {
    return (
      <div className="App">
        {this.state.list.map(e => (
          <div key={e.id}>
            <input
              type="checkbox"
              id={e.id}
              checked={e.value}
              onChange={this.handleChange}
            />
            <label htmlFor={e.id}>{e.label}</label>
          </div>
        ))}
        <button onClick={this.handleClick}>Delete</button>
      </div>
    );
  }
}


ReactDOM.render( < App / > , document.getElementById('root'))
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<div id="root"><div>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多