Javascript React数据表组件,将单击行的信息传递到模式
我正在用ReactJS制作一个离线PWA,并且我已经开始使用react数据表组件,这到目前为止非常好 我已经将表设置为有一个Javascript React数据表组件,将单击行的信息传递到模式,javascript,reactjs,react-data-table-component,Javascript,Reactjs,React Data Table Component,我正在用ReactJS制作一个离线PWA,并且我已经开始使用react数据表组件,这到目前为止非常好 我已经将表设置为有一个onRowClicked函数,该函数可以在任何时候单击一行时调用,到目前为止,我只使用该函数在单击时打开一个确实有效的模式 我的问题是,我希望模式包含来自所单击行的行元素的信息。因此,基本上,如果我单击标题为“Hello There”(element.title)的第一行,我希望模态也包含该行的元素 这段代码显示了我所拥有的一切,包括我如何将文档从PockDB映射到elem
onRowClicked
函数,该函数可以在任何时候单击一行时调用,到目前为止,我只使用该函数在单击时打开一个确实有效的模式
我的问题是,我希望模式包含来自所单击行的行元素的信息。因此,基本上,如果我单击标题为“Hello There”(element.title)的第一行,我希望模态也包含该行的元素
这段代码显示了我所拥有的一切,包括我如何将文档从PockDB映射到elements对象,elements对象将通知数据表中的行
我需要做什么才能将单击行的信息传递到模式中
import React,{useState,usemo}来自“React”;
从“简单flexbox”导入{列,行};
从“aphrodite/no-important”导入{StyleSheet,css};
常量列=[
{
姓名:'头衔',
可排序:是的,
单元格:row=>({row.title}),
},
{
姓名:'入境日期',
选择器:“createdAt”,
可排序:是的,
对:对,
},
];
类MedJournalComponent扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
加载:对,
元素:null,
notebookDisplayOpen:错误
};
this.fetchData.bind(this);
}
componentDidMount(){
这是fetchData();
}
fetchData=()=>{
这是我的国家({
加载:对,
元素:null,
});
this.props.notes.db.allDocs({
包含文档:true,
})。然后(结果=>{
const rows=result.rows;
这是我的国家({
加载:false,
元素:rows.map(row=>row.doc),
});
}).catch((错误)=>{
控制台日志(err);
});
}
notebookEntryHandler=()=>{
this.setState({notebookDisplayOpen:true});
}
closeNotebookEntry=()=>{
this.setState({notebookDisplayOpen:false});
}
render(){
const{notebookDisplayOpen}=this.state;
if(this.state.loading | | this.state.elements===null){
返回“正在加载…”;
}
返回(
试验
);
}
}
导出默认MedJournalComponent;
更改:
notebookEntryHandler = () => {
this.setState({notebookDisplayOpen: true});
}
致:
行
表示单击的行,您可以将其存储在状态并在模式中使用。您可以始终在rources中搜索。。。正如预期的那样,处理程序获取行
等待,出于某种原因,我没有在任何地方看到它。所以我应该能够保持onRowClicked行的方式,但是在我调用的函数中,默认情况下应该是row?这是合乎逻辑的,不是吗?没有它的处理程序不可用,不需要?@xadm我想我的问题是如何在我的函数中访问它?我仍然是一个反应迟钝的人,所以我只是想从那个来源弄清楚,我怎样才能访问我的notebookEntryHandler
?试试notebookEntryHandler=(row,e)=>
?明白了,谢谢!在阅读了@xadm指出的源代码之后,这一点现在也更有意义了
notebookEntryHandler = row => {
this.setState({notebookDisplayOpen: true});
}