如何清空人员选择器?

时间:2019-11-15 11:09:13

标签: reactjs spfx

我在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时,而不是在提交或更新时,会发生此错误。

有人看到我在这里想念什么吗?

0 个答案:

没有答案