Javascript MBDReact:如何制作<;数据表>;行可点击?
我已经使用Javascript MBDReact:如何制作<;数据表>;行可点击?,javascript,reactjs,mdbreact,Javascript,Reactjs,Mdbreact,我已经使用datatable在应用程序的管理端用MDBReact设置了我的表。这张表格显示了我的故事的一些小细节 现在,我必须使行可单击,即添加onClick,以使用作为此函数参数传递的storyid进行函数调用 问题: 如何将onClick事件添加到datatable行 (以下是我的代码。) class Posts扩展组件{ componentDidMount(){ 这是getPosts(); } getPosts=async()=>{ const response=wait fetch(“h
datatable
在应用程序的管理端用MDBReact
设置了我的表。这张表格
显示了我的故事的一些小细节
现在,我必须使行
可单击,即添加onClick
,以使用作为此函数参数传递的storyid
进行函数调用
问题:
如何将onClick
事件添加到datatable
行
(以下是我的代码。)
class Posts扩展组件{
componentDidMount(){
这是getPosts();
}
getPosts=async()=>{
const response=wait fetch(“http://***************/get_posts”);
const post_items=wait response.json();
this.setState({posts:post_items.result},()=>{
log(this.state.posts);
this.setState({tableRows:this.assemblePost()});
});
};
assemblePost=()=>{
让posts=this.state.posts.map((post)=>{
让mongoDate=post.dateAdded.toString();
让mainDate=JSON.stringify(新日期(mongoDate));
返回{
postTitle:post.storyTitle,
//postDescription:post.storyDescription,
dateAdded:mainDate.slice(1,11),
谢谢:post.thankedBy.length,
报告人:post.reportedBy?post.reportedBy.length:“”,
userEmail:post.userEmail[0],
categoryName:post.categoryName[0],
};
});
控制台日志(posts);
返回岗位;
};
状态={
员额:[],
tableRows:[],
};
render(){
常数数据={
栏目:[
{
标签:“故事标题”,
字段:“postTitle”,
},
{标签:“类别名称”,字段:“categoryName”},
{
标签:“用户电子邮件”,
字段:“用户电子邮件”,
},
{
标签:“添加日期”,
字段:“已添加日期”,
},
{
标签:“谢谢”,
字段:“谢谢”,
},
{
标签:“已报告”,
字段:“reportedBy”,
},
],
行:this.state.tableRows,
};
返回(
帖子列表
);
}
}
导出默认职位;
要实现这一点,以下是我所做的,但您需要感谢这些:
MDBDataTable
要求您手动定义列和行
- 为了无缝呈现数据,您可以定义与
行[键]
对应的列.field
- 现在,这里是逻辑,如果您定义了一个
行[key]
,而不对应于任何列。字段,那么行[key]
是为整个行定义的,就像我们在使用映射()
时经常传递的索引一样
因此,根据以上观察,
您可以将单击事件作为键/值
对传递到行
,它将正常工作
/。。。
assemblePost=()=>{
让posts=this.state.posts.map(
(post,i)=>{
让mongoDate=post.dateAdded.toString();
让mainDate=JSON.stringify(新日期(mongoDate));
返回{
索引:i+1,//建议为每个项/行传递唯一标识符
clickEvent:()=>this.handleClick(storyId),//向其传递回调函数
postTitle:post.storyTitle,
//……其他
categoryName:post.categoryName[0],
};
});
控制台日志(posts);
返回岗位;
};
// ...
请注意,clickEvent:()=>this.handleClick(storyId),
将附加到整个行