javascript - 如何通过布局(顶层)中呈现的模式处理从列表中删除项目?
问题描述
我在我的布局中呈现我的模式,模式的功能是删除我的待办事项列表中的列表项。如何将该句柄删除功能传递给模态?
class TODO extends Component {
handleDelete = (id) => {
const newArr = this.state.TODOList.filter((item, idx) => {id !==
idx})
this.setState({ TODOList: newArr });
}
render () {
return this.state.TODOList.map((item, id) =>
<div>
<ITEMS
idx={id}
id={id}
/>
</div>
)
}
}
class myModal extends Component {
render () {
return (
<div>
<button onClick={...???....}> Delete </Button>
</div>
)
}
}
class Layout extends Component {
render () {
return (
<div>
<myModal />
</div>
)
}
}
解决方案
首先,您应该添加<TODO>
为. 您可以设置它的.Create a in 。使用 todo调用它。并传入的道具。这适用于您想要有一个状态的情况<Layout>
ref='todo'
handleDelete
<Layout>
handleDelete
ref
handleDelete
<myModal>
TODO
class TODO extends Component {
handleDelete = (id) => {
const newArr = this.state.TODOList.filter((item, idx) => {id !==idx})
this.setState({ TODOList: newArr });
}
}
class myModal extends Component {
state = {idToDelete : 2}
render () {
return (
<div>
<button onClick={() => this.props.handleDelete(this.state.idToDelete)}> Delete </Button>
</div>
)
}
}
class Layout extends Component {
render () {
return (
<div>
<myModal handleDelete={handleDelete} />
<TODO ref="todo" />
</div>
)
}
handleDelete = (id) =>{
this.refs.handleDelete(id);
}
}
推荐阅读
- php - 如何为每种自定义帖子类型上传不同的图像大小
- python - 获取查询返回的文档数
- oracle - 使用 SQL Developer 并收到以下错误:尝试将有效属性分配给代理
- python - 如何将字符串作为关键字参数传递给方法
- r - 随机化检查
- r - 随机分配任务到组
- java - 如何在 GraphqlJava 查询中支持排序
- c# - 具有身份角色授权的 Active Directory 身份验证
- ios - 提交 Crashlytics:无法上传二进制文件 - 但它实际上成功了
- macos - 如果脚本包含 import scipy.stats,则 OSX 10.14 脚本使用 pyinstall 编译为独立可执行文件