固定数据表函数 onRowClick 不返回行数据

Posted

技术标签:

【中文标题】固定数据表函数 onRowClick 不返回行数据【英文标题】:Fixed Data Tables function onRowClick not returning row Data 【发布时间】:2017-01-02 05:19:35 【问题描述】:

这是表格类,我试图在表格选项中返回行数据对象 onRowClick。当我记录所有三个参数时,对象返回空。索引并单击事件 console.log 完全可以返回此 here is the event: Proxy dispatchConfig: Object, _targetInst: ReactDOMComponent, _dispatchInstances: ReactDOMComponent, nativeEvent: MouseEvent, type: "click"… the index: 0 the object: Object Anybody 知道为什么或如何获取返回的数据?也许使用不同的功能?

class BPTable extends React.Component 
constructor(props) 
super(props);
    // console.log(props.result);


logArgs(event,index,object)
console.log('here is the event:',event,'the index:',index, 'the object:',object);


render() 
//reset the state of BP Data on search click. 
this.state = 
  bpTableData: [
  ],
;
//creation of each data object to display
for (var i = 0; i < this.props.result.length; i++) 
    this.state.bpTableData.push(
        cc: this.props.result[i]['CardCode'],
        name: this.props.result[i]['BPName'],
        cPerson: this.props.result[i]['ContactPerson'],
        address: this.props.result[i]['Address'],
        email: this.props.result[i]['Email']
    );


return (
    <Table 
        onRowClick=this.logArgs
        rowsCount=this.state.bpTableData.length
        rowHeight=50
        headerHeight=50
        width=1200
        height=1000
        ...this.props>
    <Column 
      header=<Cell>Card Code</Cell>
      cell=props => (
        <Cell ...props
        data=this.state.bpTableData[props.rowIndex].cc>
          this.state.bpTableData[props.rowIndex].cc
        </Cell>

      )
      width=200
    />        
    <Column
      header=<Cell>Buisness Name</Cell>
      cell=props => (
        <Cell ...props
          data = this.state.bpTableData[props.rowIndex].name
        >
          this.state.bpTableData[props.rowIndex].name
        </Cell>

      )
      width=200
    /> 
    <Column
      header=<Cell>Contact Person</Cell>
      cell=props => (
        <Cell ...props>
          this.state.bpTableData[props.rowIndex].cPerson
        </Cell>

      )
      width=200
    />                
    <Column
      header=<Cell>Address</Cell>
      cell=props => (
        <Cell ...props>
          this.state.bpTableData[props.rowIndex].address
        </Cell>

      )
      width=400
    />        
    <Column
      header=<Cell>Email</Cell>
      cell=props => (
        <Cell ...props>
          this.state.bpTableData[props.rowIndex].email
        </Cell>

      )
      width=100
    />
  </Table>
);

【问题讨论】:

似乎你的 logArgs 东西没有绑定到组件的上下文。只需尝试将logArgs(event,index,object) 更改为logArgs = (event, index, object) =&gt; 或在constructor 中显式绑定(this.logArgs = this.logArgs.bind(this) 就在您的super 之后) onRowClick=function(event,index,object) console.log('here is the event:',event,'the index:',index, 'the object:',object); 返回相同的内容。我改变了这样的构造函数constructor(props) super(props); this.logArgs = this.logArgs.bind(this) // console.log(props.result); 它仍然无法正常工作。 您希望从活动中获得什么回报?那个物体里面应该有什么? (也别在意我的上一条评论,我第一次把你弄错了) 我正在执行数据行信息。我想点击该行。并返回三件事:事件、行索引和行中的数据。唯一缺少的是数据。它返回一个空对象。假设我有一排有名字和姓氏。 onRowClick 应该返回 firstname: Kyas, lastname: Fletcher 【参考方案1】:

看起来 onRowClick 只有 args: event, index。我通过使用索引来访问我作为状态的一部分创建的适当的表数据来解决这个问题。

在你的情况下,它会是:

logArgs(event,index)
  console.log( 'here is the event:',event,
               'the index:',index,
               'the object:',this.state.bpTableData[index]
  );

【讨论】:

以上是关于固定数据表函数 onRowClick 不返回行数据的主要内容,如果未能解决你的问题,请参考以下文章

MUIDataTable : onRowclick 在可选择的工具提示中显示来自 json 的数据,而不是作为一列

MySQL分页时统计总记录行数并使用limit返回固定数目的记录

mssql sqlserver 不固定行转列数据(动态列)

excel满足多个条件后返回固定值并求和怎么用函数实现?

AG 网格:禁用编辑行,除非保存已编辑的行

求大神指点elementUI table如何合并第二三列,如何根据后台返回的数据合并行