SharePoint:SPFX中PNP人员选择器无建议提示问题
解决SPFx中PNP人员选择器无法显示用户建议的问题
问题根源
你遇到的Microsoft.OData.Core.ODataException错误,是因为PNP人员选择器在请求用户数据时,向SharePoint OData接口传递了SharePointGroupID=null的参数,但该接口要求这个属性必须是非空的整数类型。通常是由于人员选择器的sharePointGroupIds属性未正确配置导致的。
解决方案
1. 无需按组过滤用户时的配置
如果不需要限制只能选择特定SharePoint组内的用户,不要设置sharePointGroupIds属性,或者将其显式设置为空数组[](避免传递null值):
import { PeoplePicker, PrincipalType } from '@pnp/spfx-controls-react/lib/PeoplePicker'; // 正确示例:不限制用户所在组 <PeoplePicker context={this.props.context} titleText="选择用户" personSelectionLimit={3} principalTypes={[PrincipalType.User]} sharePointGroupIds={[]} // 显式设置为空数组,或直接移除该属性 onChange={(selectedItems) => { // 处理选中项逻辑 }} />
2. 需要按组过滤用户时的配置
如果要限制只能选择指定组内的用户,确保sharePointGroupIds传入有效的SharePoint组ID数组(组ID必须是存在的整数):
// 正确示例:限制选择ID为10和20的组内用户 <PeoplePicker context={this.props.context} titleText="选择指定组用户" personSelectionLimit={3} principalTypes={[PrincipalType.User]} sharePointGroupIds={[10, 20]} // 替换为实际的SharePoint组ID onChange={(selectedItems) => { // 处理选中项逻辑 }} />
3. 更新依赖包(可选)
如果使用的是旧版本的@pnp/spfx-controls-react,可能存在参数处理的bug。执行以下命令更新到最新版本:
npm update @pnp/spfx-controls-react
内容的提问来源于stack exchange,提问作者omnipersonalista
相关产品推荐
相关产品推荐

