如何使用@pnp/sp查询SP列表中的person列获取姓名
How to use @pnp/sp to query a person column in an SP list to get the name
我有一个 Web 部件需要检索人员列(人员选择器)的名称 属性,以便我可以用它填充状态并随后填充字段。这是查询项目的函数:
private _jeChange = (ev: React.FormEvent<HTMLDivElement>, option?: IDropdownOption, index?: number) => {
this.setState({
SelectedJE: option.text,
}, () => {
const selJE = this.state.SelectedJE;
if (selJE && selJE.length > 0) {
let _item = this.state.MyListItems.find((item) => {
return item.JobRef == selJE;
});
this.setState({
JEDeptContact: _item.DeptContactId,
}, () => {
sp.web.lists.getByTitle("MyList").items.getById(_item.Id).select("DeptContact", "Lookup/Name", "Lookup/ID").expand("Lookup").get().then((item: any[]) => {
console.log(item);
});
});
}
});
}
_item.DeptContactId 成功地使用人员列中的用户 ID 填充了状态,但我想要的是名称而不是 ID,如何将 ID 解析为名称?我需要使用扩展来获取名称吗?如果是这样怎么办?
我读过这个但我不知道在哪里使用扩展:
https://pnp.github.io/pnpjs/sp/items/
找到了:
if(_item.DeptContactId){
sp.web.getUserById(_item.DeptContactId).select("Title", "DeptContact/Title").expand("DeptContact").get().then(r => {
this.setState({
JEDeptContact: r.Title,
});
});
我有一个 Web 部件需要检索人员列(人员选择器)的名称 属性,以便我可以用它填充状态并随后填充字段。这是查询项目的函数:
private _jeChange = (ev: React.FormEvent<HTMLDivElement>, option?: IDropdownOption, index?: number) => {
this.setState({
SelectedJE: option.text,
}, () => {
const selJE = this.state.SelectedJE;
if (selJE && selJE.length > 0) {
let _item = this.state.MyListItems.find((item) => {
return item.JobRef == selJE;
});
this.setState({
JEDeptContact: _item.DeptContactId,
}, () => {
sp.web.lists.getByTitle("MyList").items.getById(_item.Id).select("DeptContact", "Lookup/Name", "Lookup/ID").expand("Lookup").get().then((item: any[]) => {
console.log(item);
});
});
}
});
}
_item.DeptContactId 成功地使用人员列中的用户 ID 填充了状态,但我想要的是名称而不是 ID,如何将 ID 解析为名称?我需要使用扩展来获取名称吗?如果是这样怎么办? 我读过这个但我不知道在哪里使用扩展: https://pnp.github.io/pnpjs/sp/items/
找到了:
if(_item.DeptContactId){
sp.web.getUserById(_item.DeptContactId).select("Title", "DeptContact/Title").expand("DeptContact").get().then(r => {
this.setState({
JEDeptContact: r.Title,
});
});