我无法在我的网格组件 (syncfusion) 中显示数据。它总是抛出一个错误“TypeError:无法读取未定义的属性(读取'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;