react-test-renderer error:TypeError:无法读取属性' offsetWidth'未定义的

时间:2018-01-03 16:53:34

标签: reactjs jestjs react-data-grid

我正在尝试测试一个组件,该组件呈现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:无法读取属性&#39; offsetWidth&#39;未定义的

有关导致此问题的原因的任何想法?

编辑: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;

1 个答案:

答案 0 :(得分:4)

“ react”和“ react-test-renderer”版本不同时会出现此问题。

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

欢呼