react 函数组件对数组的修改和视图的更新
在之前的版本中一般使用类组件this.setState
修改数据更新视图,在最新的版本中,react推荐使用函数组件,函数组件里面是没有this
的,所以需要使用Hook
import { Button } from "antd"
import { useState } from "react"
export default function Role() {
const [list, setList] = useState([
{
id: 1,
name: 'zhangsan'
},
{
id: 2,
name: 'lisi'
},
{
id: 3,
name: 'wangwu'
}
])
// 添加
const handAdd = () => {
setList([...list, {
id: list.length 1,
name: 'xxxx'
}])
}
// 删除
const handClick = (item, index) => {
// setList(list.filter(i => i.id !== list[item].id))
// or 一般直接使用上面这种方式就可以,要是上面这种方法无效可以试试下面的方法
let data = list
data.splice(item, 1)
setList([...data])
}
return (
<div>
<Button onClick={handAdd}>添加</Button>
<RoleFrom list={list} handClick={handClick} />
</div>
)
}
// 子组件
function RoleFrom(props) {
return (
<ul>
{
props.list.map((item, index) => {
return <li key={item.id} onClick={props.handClick.bind(item, index)}>{item.name}</li>
})
}
</ul>
)
}
添加后的效果
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfggef
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13