我正在 spfx 中创建一个编辑表单(以 react js 为框架(,我将在其中使用 pnp js 获取特定列表项的数据。我已经从人员类型字段中获取了数据,说"发件人"。现在,我想在人员选取器控件中显示提取的用户。
下面的控件在我的代码中使用。"defaultSelectedUsers"的值是静态设置的,以检查加载此控件后,其中提到的登录名是否会预填充用户。但是此属性不起作用。
谁能建议我如何预填充这个人员选择器控件?
<PeoplePicker
context={this.props.context}
titleText="Sender"
personSelectionLimit={1}
groupName={"some group here"}
showtooltip={true}
isRequired={true}
disabled={false}
defaultSelectedUsers=
{['i:0#.f|membership|abcUser@xyz23.onmicrosoft.com']}
selectedItems={this._getItems}
showHiddenInUI={false}
principalTypes={[PrincipalType.User]}
resolveDelay={200}
ensureUser={true}
/>
预期行为:一旦页面加载,我希望具有登录名的用户i:0#.f|membership|abcUser@xyz23.onmicrosoft.com
预先填充在人员选取器控件中。
我几乎从2-3天开始就这个问题进行研发。但什么也找不到。今天我只是尝试了一件简单的事情。我放了用户的电子邮件而不是登录名,这件事奏效了。
<PeoplePicker
context={this.props.context}
titleText="Sender"
personSelectionLimit={1}
groupName={"some group here"}
showtooltip={true}
isRequired={true}
disabled={false}
**defaultSelectedUsers=
{['abcUser@xyz23.onmicrosoft.com']}**
selectedItems={this._getItems}
showHiddenInUI={false}
principalTypes={[PrincipalType.User]}
resolveDelay={200}
ensureUser={true}
/>
在我的情况下,添加 ensureUser= {true} 解决了以下问题
<PeoplePicker
context={this.props.context}
titleText="Multi People Picker for user name"
personSelectionLimit={5}
groupName={""}
showtooltip={true}
required={false}
disabled={false}
ensureUser= {true}
onChange={this._getPeoplePickerItemsUsername}
showHiddenInUI={false}
principalTypes={[PrincipalType.User]}
resolveDelay={1000} />