我正在使用本教程使用 spfx 和 sp/pnp v3 创建一个 webpart: https://learn.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/guidance/use-sp-pnp-js-with-spfx-web-parts 我还提到:https://pnp.github.io/pnpjs/getting-started/ 这是根 .ts 文件:
public async onInit(): Promise<void> {
await super.onInit();
getSP(this.context);
}
这里是父组件:
import { getSP } from "../components/pnpjsConfig";
import { SPFI, spfi } from "@pnp/sp";
let sp: SPFI;
sp = getSP();
const GetAssessments = async () => {
const allItems = await sp.web.lists.getByTitle("MyList").items.select(`*, Author/Id,
CompletedBy/UserName, CompletedBy/Title, CompletedBy/Id,
BURepresentative/UserName, BURepresentative/Title, BURepresentative/Id
`).expand('Author, CompletedBy, BURepresentative')().then(r => {
const returnedAssessment: IListItem[] = r.map((item) => {
return {
Id: item.Id,
FormStatus: item.FormStatus,
CurrentStatus: item.CurrentStatus,
CompletedById: item.CompletedById,
AuthorId: item.AuthorId,
BURepresentativeId: item.BURepresentativeId,
};
});
return returnedAssessment;
});
let sortedAssessment = allItems.sort((a, b) => a.Id < b.Id ? 1 : -1);
return sortedAssessment;
};
但我得到:
TypeError: Cannot read properties of undefined (reading 'pageContext')
当 gulp serve --nobrowser.
需要帮助。
v2 和 v3 在导入包的方式上有所不同。在 v3 中,您需要显式导入所需的包。
例如
import "@pnp/sp";
import "@pnp/sp/webs";
import "@pnp/sp/lists";
import "@pnp/sp/webs";
尝试添加您需要的导入。
更多信息:https://pnp.github.io/pnpjs/concepts/selective-imports/