将已获取的帐户名/登录名设置为 Pnp Js 人员选取器



我正在 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} />

最新更新