Reactjs AgGrid未填充所有列
当我运行测试时,表在d2处停止构建。在大多数情况下,这是相当基本的代码,有人能解释一下为什么我不能让它正常工作吗 当我进行jest测试时,它将参数从测试传递到表并返回,但它似乎丢失了路径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
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,然后它就停止了。