与人员选择器自定义编辑表格

问题描述:

我正在为使用office-ui-fabric-react库构建的SharePoint创建自定义编辑表单。我最近在编辑表单中添加了人员选择器,并意识到查找列不会在正常的“获取”REST调用上返回。看起来你必须为每个人员选择器进行选择和扩展。与人员选择器自定义编辑表格

我以前设置的获取请求旨在通过自动调用列表名称和当前项目标识尽可能重复使用。在这一点上,我觉得我正在做一些艰难的工作,并希望看看是否有其他人有过使用React SharePoint编辑表单的人员选择列的经验。

我目前设置列值的工作流程如下。

  1. 所有当前列的GET请求的形式编辑踢componentDidMount值
  2. 装载的值设置为国家
  3. 编辑表单上的子组件发送this.state.loadedValues下来的道具价值
  4. 在子组件,该值设置为this.props.value

目前,它好像如果我想填充我反应的组分与电流值,我将不得不杉st做我的普通“获得”REST调用通常的列,然后单独的REST调用,并为我添加到表单中的每个人员选择器进行选择和展开。有没有更好的方法来做到这一点?

这里是通用的GET请求,我有:

let req = new XMLHttpRequest; 
     return new Promise((resolve, reject) => { 
      req.open('GET', `${_spPageContextInfo.webAbsoluteUrl}/_api/Web/Lists/GetByTitle('${LIST_NAME}')/Items(${ITEM_ID})`, true); 
      req.setRequestHeader('Content-Type', 'application/json;odata=verbose'); 
      req.setRequestHeader('Accept', 'application/json;odata=verbose'); 

      req.onload = async() => { 
       // alert(req.status); 
       if (req.status === 200) { 
        let response = JSON.parse(req.response); 
        resolve(response.d); 
       } else { 
        reject(Error(req.statusText)); 
       } 
      }; 
      req.onerror =() => { 
       console.log(`Error: ${req.status}`); 
       reject(Error('Network Error')); 
      }; 
      req.send(null); 
     }); 

我做了这样的事情,我用一个单一的REST调用来获取所有信息,扩展列包括在内。您只需要扩展查找,其他列可以无缝工作。

类似于"Id, Title, PeopleField1/Id, PeopleField1/Title, PeopleField1/EMail, FieldX, FieldY"的列,而只有"PeopleField1"用于展开。