You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Js 如何实现列表内指定项的删除功能

React 列表项删除功能实现方案
  • 原有代码中的星期列表是定义在render方法内的常量,无法动态修改触发视图更新,首先需要将列表数据存入组件的state中,依托React状态驱动视图的特性实现删除效果。
  • 新增删除处理函数,通过filter方法过滤掉需要删除的项后调用setState更新状态即可自动刷新列表。
  • 给每个Delete按钮绑定onClick事件传递当前项的标识,同时给map渲染的li元素添加唯一key属性,避免React渲染警告。

注意:如果你的列表可能存在重复值,建议使用索引作为删除和key的标识,避免误删多条数据

完整修改后代码如下:

class Weekdays extends React.Component {
  constructor(props) {
    super(props);
    // 把列表数据存入state
    this.state = {
      listItem: ["sun", "mon", "tue", "wed", "thur", "fri", "sat"]
    };
    // 绑定方法this指向
    this.handleDelete = this.handleDelete.bind(this);
  }

  // 删除处理方法
  handleDelete(targetDay) {
    // 过滤掉要删除的项,生成新数组
    const updatedList = this.state.listItem.filter(day => day !== targetDay);
    // 更新state触发视图重新渲染
    this.setState({
      listItem: updatedList
    });
  }

  render() {
    return (
      <ul>
        {this.state.listItem.map((day) => (
          {/* 必须加唯一key */}
          <li key={day}>
            {day} 
            {/* 绑定点击事件,传入当前项的day值 */}
            <button onClick={() => this.handleDelete(day)}>Delete</button>
          </li>
        ))}
      </ul>
    );
  }
}
ReactDOM.render(<Weekdays />, document.getElementById("root"));

内容的提问来源于stack exchange,提问作者Shekhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:06:02