我在SharePoint Online网站集上有一个spfx表单,可将数据读取/写入SP列表。
我有3个人选择器,我已经设法成功地(使用了“提交”按钮)将其提交到列表中。我也可以从列表中成功检索这3个人选择器。
问题是,当我从任何人员选择器中删除用户时。控制台给我一个错误,提示无法获取未定义或空引用的属性“ id”。
我认为我需要一些可以处理函数中用户删除操作的东西,但我不知道该怎么办。 随后,我希望用户(使用表单)能够从PP中删除该用户,然后单击“更新”按钮以更新并提交更改。
以下是渲染中3个人选择器中的1个人:
<PeoplePicker
context={this.props.context}
personSelectionLimit={1}
groupName={''} // Leave this blank in case you want to filter from all users
showtooltip={false}
isRequired={false}
disabled={false}
selectedItems={this._deptContGetPeoplePickerItems}//This is the 'onChange'
showHiddenInUI={false}
defaultSelectedUsers={this.state.DeptContactPPDefaultItems ? this.state.DeptContactPPDefaultItems : []}//this is the value it means if this.state.PeoplePickerDefaultItems is truthy then show it, if not then don't
principalTypes={[PrincipalType.User]}
resolveDelay={1000}
ensureUser={true}
/>
这是所有3个人员选取器的3个功能(每PP 1个)。这些功能已分配给PP的selectedItems属性(如上所示)。我相信这是PP的“ onChange”属性:
private _deptContGetPeoplePickerItems(items) {
if(items !== null && items.length >0){
this.setState({
DeptContact: items[0].id,
DeptContactPPDefaultItems: [items[0].secondaryText],
}
}
console.log(this.state.DeptContactPPDefaultItems+'this.state.DeptContactPPDefaultItemsADD');
});
}
if(items !== null && items.length >0){
this.setState({
DeptContact: items[0].id,
DeptContactPPDefaultItems: [items[0].secondaryText]
}
});
}
}
如您所见,我尝试使用if处理从PP中删除用户。我似乎认为if可以解决很多问题!
如上所述,当我从PP中删除用户时,它说“无法获取未定义或空引用的属性'id'”。当我实际单击PP上的remove x时,而不是在提交或更新时,会发生此错误。
有人看到我在这里想念什么吗?