从零开始学习React——(八):React列表循环删除某项以及参数传递

21 篇文章 6 订阅

本节将介绍列表循环时删除其中某项

需求是这样的:点击已经有的选项时,可以进行删除。

1. 数组下标的传递

需要删除其中某项,那么首先就要知道当前点击项的index,也就是下标,然后绑定一个事件。代码如下:

	// 省略部分代码
	<ul>
		{
			this.state.list.map((item, index) => {
				// 此处如果return后面只有一行的话就不需要写括号,如果需要换行就必须写括号
				return (
					<li
						key = {index + item}
						onClick = {this.delItem.bind(this, index)}
						>
						{item}
					</li>
				)
			})
		}
	</ul>

此时delItem方法还不存在,接下来,定义一个该方法。

2. 编写delItem方法

该方法接收一个参数。那就是当前点击项的下标

	delItem(index) {
		console.log(index)
	}

返回浏览器可以看到成功打印出该下标。

3. 实现删除数据

获得数据下标后,删除数据就很简单了。先声明一个局部变量。将原始的list数组保存起来(之所以保存起来的原因下面会提到)。然后通过传递过来的index,删除数组中对应的值。然后用setState更新数据就好了。

	// 删除item
	delItem(index) {
		let list = this.state.list
		list.splice(index, 1)
		this.setState({
			list: list
		})
	}

之所以需要保存数据是因为React会存在一个坑。因为React是禁止直接操作state的。这个坑在后期的性能优化上会有很多麻烦,所以一定要向上述代码一样操作。

以下为错误示范,请避免:

	// 错误示范
	delItem(index) {
		this.state.splice(index, 1)
		this.setState({
			list: this.state.list
		})
	}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是从零开始学习React框架的学习路径、学习资料和资料链接: 1. HTML、CSS和JavaScript基础知识 在学习React之前,需要先掌握HTML、CSS和JavaScript的基础知识,包括HTML标签、CSS样式、JavaScript语法、DOM操作和事件处理等。可以通过以下资料进行学习: - MDN Web 文档:https://developer.mozilla.org/zh-CN/ - w3school 在线教程:https://www.w3school.com.cn/ - 菜鸟教程:https://www.runoob.com/ 2. React基础知识 学习React的基础知识,包括React的概念、组件、生命周期、事件处理等。可以通过以下资料进行学习: - React 官方文档:https://reactjs.org/docs/getting-started.html - React 小书:http://huziketang.mangojuice.top/books/react/ - React 实战教程:https://www.imooc.com/learn/1075 3. React进阶知识 学习React的进阶知识,包括React的路由、状态管理、性能优化等。可以通过以下资料进行学习: - React Router 官方文档:https://reactrouter.com/web/guides/quick-start - Redux 官方文档:https://redux.js.org/ - React性能优化实践指南:https://juejin.cn/post/6844904152138365453 4. 实战项目 最后,通过实战项目来练习React的应用。可以通过以下资料进行学习: - React 实战-打造画廊应用:https://www.imooc.com/learn/507 - React 实战-开发简易版微信:https://www.imooc.com/learn/651 - React 实战-开发音乐播放器:https://www.imooc.com/learn/868 希望以上资料对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值