2017-04-15 1 views
1

office-ui-fabric-reactライブラリを使用して構築されたSharePoint用のカスタム編集フォームを作成します。私は最近、私の編集フォームに人のピッカーを追加し、ルックアップの列が正常な "get" REST呼び出しに戻らないことに気付きました。あなたが選択して各ピッカーを展開する必要があるようです。人物ピッカーを使用したカスタム編集フォーム

私が以前に設定したgetリクエストは、リスト名と現在のアイテムIDを自動的に呼び出すことで、できるだけ再利用できるようになっています。現時点では、難しいことをやっているような気がして、React SharePointの編集フォームで人のピッカー列を使った経験がある人がいれば見たいと思っていました。

現在、列の値を設定するワークフローは次のとおりです。現在のすべての列のget要求の

  1. 編集フォームcomponentDidMountキックは
  2. ロードされた値は以下のようにthis.state.loadedValuesを下に送信している状態の編集フォーム上の子コンポーネント
  3. に設定されている値子コンポーネント内の小道具値
  4. は、値が私はモミしなければならない、

それは現在、私は私の現在の値を使用してコンポーネントに反応移入したい場合のように思えるがthis.props.valueするように設定されていますstは私の通常の "get" 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); 
     }); 

答えて

0

が、私はそのような何かをした、と私はすべての情報を取得するために1つのREST呼び出しを使用し、拡張された列が含まれています。ルックアップを拡張するだけで、他の列はシームレスに機能します。

列の場合は"Id, Title, PeopleField1/Id, PeopleField1/Title, PeopleField1/EMail, FieldX, FieldY"、展開の場合は"PeopleField1"などとなります。

関連する問題