SPFx - возникают проблемы при чтении поля персонажа из списка SP - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь получить данные из поля человека в SharePoint. Мой код всегда возвращает 8 строк (это правильно), но для элементов, состоящих из Person, он возвращает [объект Obejct]. введите описание изображения здесь

export interface SPUser {
  Pracovnik: String;
}

.
.
private getListData(): void {
        this._getListData().then((response) => {
            this._renderList(response);
        });
      }

      private _renderList(items: SPUser[]): void {
        let html: string = '<table class="TFtable" border=1 width=100% style="border-collapse: collapse;">';
         html += `<th>Title</th>`;
         items.forEach((item: SPUser) => {
           if(item.Pracovnik != null) {
         html += `
            <tr> <td>${item.Pracovnik}</td> </tr>
         `};
        
        });
        html += `</table>`;
        const listContainer: Element = this.domElement.querySelector('#spGetListItems');
        listContainer.innerHTML = html;
        
      }


      private async _getListData(): Promise<SPUser[]> {
        return pnp.sp.web.lists.getByTitle("org_struktura").items.select("Pracovnik/ID").expand("Pracovnik").get().then((response) => {
          return response;
        });
      }
      
      
      
      public render(): void {
      this.domElement.innerHTML = `
      <div class="parentContainer" style="background-color: lightgrey">
      <div style="background-color: lightgrey" id="spGetListItems" />
      </div> 
      `;  
      this.getListData();    
    }

Любая идея, что не так, пожалуйста?

1 Ответ

0 голосов
/ 08 ноября 2019

Пример демонстрации для сопоставления элемента списка SharePoint с объектом Type.

export interface IReactItem{ 
  Id:number,
  Title:string,
  Description:string,
  User:{ID:number,EMail:string},
  enableEdit:boolean
}

private async _getListData(): Promise<IReactItem[]> {
  return pnp.sp.web.lists.getByTitle("TestList").items.select("Id,Title,Description,User/ID,User/EMail").expand("User").get().then((response:IReactItem[]) => {
    return response;
  });
}

enter image description here

...