next.js TypeError:无法读取未定义的属性(阅读“pvtData”)

55ooxyrt  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(132)

我无法在网格组件中显示数据(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;
mpbci0fu

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
致上,
桑托什岛

相关问题