3

我正在尝试测试一个组件,该组件呈现 react-data-grid 组件的基本示例(http://adazzle.github.io/react-data-grid/examples.html#/basic)。

测试代码如下所示:

import React from 'react';
import renderer from 'react-test-renderer';
import ExampleGrid from './ExampleGrid';

it('renders correctly', () => {
    const tree = renderer.create(<ExampleGrid />);
    expect(tree).toMatchSnapshot();
}); 

当我运行测试时,我收到消息:

TypeError:无法读取未定义的属性“offsetWidth”

关于是什么导致这个问题的任何想法?

编辑: ExampleGrid 的内容是:

const ReactDataGrid = require('react-data-grid');
const React = require('react');

class ExampleGrid extends React.Component {
    constructor(props, context) {
        super(props, context);
        this.createRows();
        this._columns = [
            { key: 'id', name: 'ID' },
            { key: 'title', name: 'Title' },
            { key: 'count', name: 'Count' } ];

        this.state = null;
    }

    createRows = () => {
        let rows = [];
        for (let i = 1; i < 4; i++) {
            rows.push({
                id: i,
                title: 'Title ' + i,
                count: i * 1000
            });
        }

        this._rows = rows;
    };

    rowGetter = (i) => {
        return this._rows[i];
    };

    render() {
        return  (
            <ReactDataGrid
                columns={this._columns}
                rowGetter={this.rowGetter}
                rowsCount={this._rows.length}
                minHeight={500} />);
    }
}

export default ExampleGrid;
4

1 回答 1

7

当 'react' 和 'react-test-renderer' 版本不同时,就会出现这个问题。

将它们更改为相同的版本号,它将起作用。

干杯

于 2019-08-12T19:44:07.337 回答