#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 не существует ни в одном []