Reactjs AgGrid未填充所有列

Reactjs AgGrid未填充所有列,reactjs,jestjs,enzyme,ag-grid-react,Reactjs,Jestjs,Enzyme,Ag Grid React,当我运行测试时,表在d2处停止构建。在大多数情况下,这是相当基本的代码,有人能解释一下为什么我不能让它正常工作吗 当我进行jest测试时,它将参数从测试传递到表并返回,但它似乎丢失了路径 import DataTable from '@components/DataCard/DataTable'; import { AgGridReact } from 'ag-grid-react'; import { ensureGridApiHasBeenSet } from '@src/utils/A

当我运行测试时,表在d2处停止构建。在大多数情况下,这是相当基本的代码,有人能解释一下为什么我不能让它正常工作吗

当我进行jest测试时,它将参数从测试传递到表并返回,但它似乎丢失了路径


import DataTable from '@components/DataCard/DataTable';

import { AgGridReact } from 'ag-grid-react';
import { ensureGridApiHasBeenSet } from '@src/utils/AGGridTestUtils';

describe('Testing <Table /> test suit', () => {

    let data = [{
        d1:'name',
        d2:'123',
        d4:'good',
        d5:'',
        d6:'',
        d7:'foo'
    }]

    let component = null;
    let AgGridReact = null

    beforeEach((done) => {
        component = mount((<DataTable.WrappedComponent data={data}/>));
        agGridReact = component.find(AgGridReact).instance();
        ensureGridApiHasBeenSet(component)
        .then(() => done(), () => fail("Grid API not set within expected time limits"));
    
    });
    
    it('AG Grid Render Test', async () => {
        expect(agGridReact.api).toBeTruthy();
        let html = component.html();
        expect(html.indexOf("Foo")).toBeGreaterThanOrEqual(0);
    });
})


从“@components/DataCard/DataTable”导入DataTable;
从'ag grid react'导入{AgGridReact};
从'@src/utils/AGGridTestUtils'导入{ensureGridApiHasBeenSet};
描述('测试套装',()=>{
让数据=[{
d1:‘姓名’,
d2:‘123’,
d4:“好”,
d5:“”,
d6:“,
d7:‘foo’
}]
让component=null;
让AgGridReact=null
每次之前((完成)=>{
组件=安装(());
agGridReact=component.find(agGridReact.instance();
Ensuregridaphasbeenset(组件)
。然后(()=>完成(),()=>失败(“网格API未在预期时间限制内设置”);
});
它('AG Grid Render Test',async()=>{
expect(agGridReact.api).toBeTruthy();
设html=component.html();
期望(html.indexOf(“Foo”))。超过或等于(0);
});
})
很抱歉耽搁了,这是额外的部分


import React, { Component } from 'react';
import { withRouter } from 'react-router-dom';

import { AgGridReact } from 'ag-grid-react';
import 'ag-grid-community';
import 'ag-grid-community/dist/styles/ag-grid.css';
import 'ag-grid-community/dist/styles/ag-theme-alpine.css';

import classNames from 'classnames';

class DataTable extends Component {
    construtor(data) {
        super(data);
    }

    onGridReady = (params) => {
        this.api = params.api;
        params.api.sizeColumnsToFit()

        window.addEventListener('resize', function () {
            setTimeout(function () {
                params.api.sizeColumnsToFit();
            });
        });
    }

    render() {
        const columns = [
            {
                header: 'A',
                field: 'User',
                sortable: true,
                filter: true,
            },
            {
                header: 'B',
                field: 'Manager',
                sortable: true,
                filter: true,
            },
            {
                header: 'C',
                field: 'Cost',
                sortable: true,
                filter: true,
            },
            {
                header: 'D',
                field: 'Distance',
                sortable: true,
                filter: true,
            },
        ];
        return (
            <>
                <h3 className={classNames(h3, 'sO')}>Sort information as required</h3>
                <div className={'ag-theme-alpine DataTable'} style={{ marginBottom: '60px' }} />
                <AgGridReact
                    domLayout={'autoHeight'}
                    columnDefs={columns}
                    defaultColDef={{ flex: 1, sortable: true, resiazble: true, filter: true }}
                    rowData={this.props.data}
                    onGridReady={this.onGridReady}>
                </AgGridReact>
            </>
        );
    }
}

export default withRouter(DataTable);


从“React”导入React,{Component};
从“react router dom”导入{withRouter};
从'ag grid react'导入{AgGridReact};
导入“ag网格社区”;
导入'ag grid community/dist/styles/ag grid.css';
导入'ag-grid-community/dist/styles/ag-theme-alpine.css';
从“类名称”导入类名称;
类DataTable扩展组件{
承包商(数据){
超级(数据);
}
onGridReady=(参数)=>{
this.api=params.api;
params.api.sizeColumnsToFit()
window.addEventListener('resize',函数(){
setTimeout(函数(){
params.api.sizeColumnsToFit();
});
});
}
render(){
常量列=[
{
标题:“A”,
字段:“用户”,
可排序:是的,
过滤器:对,
},
{
标题:“B”,
字段:“经理”,
可排序:是的,
过滤器:对,
},
{
标题:“C”,
字段:'成本',
可排序:是的,
过滤器:对,
},
{
标题:“D”,
字段:“距离”,
可排序:是的,
过滤器:对,
},
];
返回(
根据需要对信息进行排序
);
}
}
使用路由器导出默认值(数据表);

您有一些错误,{d1='name'…}不是json的有效格式,而应该是{d1:'name'…}谢谢,我不知道为什么会有这样的错误,我更正了它。在原始代码中,虽然它是正确的,但这不是导致问题的原因!有人能帮忙吗?我还没有弄明白为什么列不会生成…嗨,DataTable组件是如何生成的?所有的东西都是在这里生成的,当测试运行时,我得到列0,1,然后它就停止了。