Как мне отобразить заголовок каждого средства выбора людей в этом списке

#javascript #reactjs #sharepoint-online #spfx #pnp-js

#javascript #reactjs #sharepoint-online #spfx #pnp-js

Вопрос:

У меня есть веб-страница SPFX, которая при запуске извлекает список элементов из списка SPO и отображает их:

 const Owner = item.OwnerId;
var itemOwner = sp.web.getUserById(Owner).select("Title", "Owner/Title").expand("Owner").get().then(r => {
            console.log(r, 'r');
          }); //this successfully retrieves the title for each item, 
but how would I implement it into the repeated list below in replacement of item.OwnerId?

 return (
   <div>
       <tr>
        <td style={{ width: '80px' }}>{item.Created}</td>
        <td style={{ width: '100px' }}>{item.OwnerId}</td>
        <td style={{ width: '100px' }}>{item.FormStatus}</td>
        <td style={{ width: '15px' }}>
        <div className={styles.editIcon}><Icon iconName="Edit" id={item.Id.toString()} onClick={this._editItem} />
       </div>
      </td>
     </tr>
   </div>
  );

 

Я хочу показать заголовок столбца Owner, а не идентификатор.
Итак, я могу получить идентификатор столбца Owner из списка SPO, и он будет успешно отображаться в списке элементов, но я не могу понять, как я мог бы развернуть столбец Owner, чтобы отобразить заголовок владельца. владельца. Вы можете видеть выше, как я пытался это сделать. Но он показывает ошибку.

Моя модель данных и интерфейс для извлечения списка:

 
export interface IEIAItem {
....
    Owner: string;
    OwnerId: any;
....
}

export class EIAItem implements IEIAItem {
....
    public Owner: string;
    public OwnerId: any;

....   
    constructor(item: IEIAItem){
....
        this.Owner=item.Owner;
        this.OwnerId=item.OwnerId;
....
    }
}
 

Ответ №1:

Я понимаю, что owner — это отдельный столбец people в вашем списке. Вы можете напрямую получить его через элемент списка:

 const items = await sp.web.lists.getByTitle("LookupList").items.select("Created", "Lookup/Title", "Lookup/ID").expand("Lookup").get();
 

Нет необходимости отправлять второй запрос на пользовательский ресурс. Приведенный выше запрос вернет указанное вами поле просмотра.

Тест:

введите описание изображения здесь

Комментарии:

1. Это действительно поиск или это то, что я должен заменить именем столбца?

2. да, замените поиск внутренним именем вашего столбца. здесь мое имя столбца ‘tjkq’

3. Я получаю только два результата, если использую обещание (.then(r => {log(r))} . Я хочу сказать, как мне получить результаты в таблице из нескольких элементов? Я не могу использовать r.Title, поскольку в нем говорится, что Title не существует ни в одном []