我无法在网格组件中显示数据(syncfusion)。它总是抛出一个错误“TypeError:无法读取undefined的属性(阅读'pvtData')"。没有来自我的网格组件的显示,错误不断抛出。我是否犯过错误,尤其是在API路由方面?
前台
const baseUrl = 'http://localhost:3000';
const data = new DataManager({
adaptor: new UrlAdaptor(),
insertUrl: baseUrl + `/api/subject/insert/${user_id}`,
updateUrl: baseUrl + `/api/subject/update/${user_id}`,
deleteUrl: baseUrl + `/api/subject/delete/${user_id}`,
url: baseUrl + `/api/subject/${user_id},
});
<GridComponent
dataSource={data}
allowPaging={true}
pageSettings={{ pageSize: 10 }}
editSettings={{ allowEditing: true }}
>
<ColumnsDirective>
<ColumnDirective field="Subject" width="200" textAlign="Left" />
<ColumnDirective field="Name" width="100" />
<ColumnDirective field="Year" width="100" textAlign="Left" />
<ColumnDirective field="Section" width="100" textAlign="Left" />
<ColumnDirective field="Semester" width="100" />
<ColumnDirective field="Batch" width="100" />
<ColumnDirective
headerText="Delete"
width="100"
textAlign="Center"
/>
</ColumnsDirective>
<Inject services={[Page, Edit]} />
</GridComponent>
API路由(下一个):
// /api/orders/:id
import { getSession } from 'next-auth/react';
import db from '@/utils/db';
import Subject from '@/models/Subject';
import Class from '@/models/Class';
const handler = async (req, res) => {
const session = await getSession({ req });
console.log('SESSION: ', session);
if (!session) {
return res.status(401).send('Signin required');
}
await db.connect();
const subject = await Subject.find({ teacher_id: req.query.id });
const dataID = subject.map((sub) => sub.class_id);
console.log('CLASS ID: ', dataID);
const classData = await Class.find({ _id: { $in: dataID } });
const mergedData = subject.map((sub) => {
const classRecord = classData.find((cls) => cls._id.equals(sub.class_id));
return {
ID: sub._id,
Subject: sub.name,
Name: classRecord.name,
Year: classRecord.year,
Section: classRecord.section,
Semester: sub.semester,
Batch: classRecord.batch,
};
});
await db.disconnect();
res.json(mergedData);
};
export default handler;
1条答案
按热度按时间mpbci0fu1#
我怀疑重复的软件包可能安装在'node_modules'的'@syncfusion'文件夹中。请遵循以下文档中提供的步骤或使用以下步骤来克服报告的行为。
1.删除包。lock.json文件。
1.从node_modules中删除'@syncfusion'包文件夹。
1.软件包中的所有组件(网格、下拉等)使用相同的版本。json文件。
1.然后安装新的包。
文件:https://ej2.syncfusion.com/react/documentation/common/how-to/update-npm-package
致上,
桑托什岛