Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactDataGrid:为什么会出现此错误类型error:undefined不是对象(正在计算';行数。长度';)_Javascript_Reactjs_React Data Grid - Fatal编程技术网

Javascript ReactDataGrid:为什么会出现此错误类型error:undefined不是对象(正在计算';行数。长度';)

Javascript ReactDataGrid:为什么会出现此错误类型error:undefined不是对象(正在计算';行数。长度';),javascript,reactjs,react-data-grid,Javascript,Reactjs,React Data Grid,我试图创建一个ReactDataGrid,当我使用rowGetter时出现了这个错误。当我使用rows={myData}时,网格工作正常,但我真的不明白发生了什么 这是我的密码: import React, {Component, useState } from 'react'; import DataGrid from 'react-data-grid'; import 'react-data-grid/dist/react-data-grid.css'; import { Toolbar,

我试图创建一个ReactDataGrid,当我使用rowGetter时出现了这个错误。当我使用rows={myData}时,网格工作正常,但我真的不明白发生了什么

这是我的密码:

import React, {Component, useState } from 'react';
import DataGrid from 'react-data-grid';
import 'react-data-grid/dist/react-data-grid.css';
import { Toolbar, Data, Filters } from "react-data-grid-addons";

const {
  NumericFilter
} = Filters;

const selectors = Data.Selectors;



class YvideoList extends Component {

    constructor(props, context){
            super (props, context);

            const selectors = Data.Selectors;

            const defaultColumnProperties = {
                    filterable: true,
                    // width: 160
            };


            this.colums =  [
                    { key: 'title', name: 'Title' }, 
                    { key: 'views', name: 'Views', filterRenderer: NumericFilter }, 
                    { key: 'date', name: 'Date' }]
            .map(c => ({ ...c, ...defaultColumnProperties }));                
    }


    rowGetter = (index) => {
            console.log("INDEX: ", index);
    return selectors.getRows(this.props.videos[0].results)[index];
    };

    rowsCount = () => {
    return selectors.getRows(this.props.videos[0].results).length;
};


    render() {
            return (
                    <DataGrid
                    columns={this.colums}
                    rowGetter={this.rowGetter} // -> GRID CRASHES
                    rowsCount={2}
                    //rows={this.props.videos[0].results} // -> THIS WORKS
                    />
            )
    }


}
export default YvideoList;
感谢您的帮助!请注意,函数rowGetter中的console.log从未显示在控制台中,因此网格在此之前就消失了

编辑1: 我认为问题在于我使用的数据网格版本。在版本5.0.4中,我添加的代码看起来可以正常工作,但在版本7上无法正常工作。
不幸的是,我找不到版本7-canary的过滤/排序示例,因此我找到了原因,这是由react数据网格的版本更改引起的,他们删除了RowGetter,因此我使用错误,他们网站上的文档不是最新的,这很遗憾,因为网格看起来非常好

对于实际演示,您可以在此处查看:

能否提供在线演示?这可能有助于其他人快速解决您面临的问题。实际上,由于此恼人的问题,已删除此软件包。他们为什么不更新他们的文档呢?
TypeError: undefined is not an object (evaluating 'rows.length')
DataGrid
src/DataGrid.tsx:268
  265 | lastFrozenColumnIndex={columnMetrics.lastFrozenColumnIndex}
  266 | draggableHeaderCell={props.draggableHeaderCell}
  267 | onHeaderDrop={props.onHeaderDrop}
> 268 | allRowsSelected={selectedRows?.size === rows.length}
      | ^  269 | onSelectedRowsChange={onSelectedRowsChange}
  270 | sortColumn={props.sortColumn}
  271 | sortDirection={props.sortDirection}