我可以使用 SPFX 获取列表中的所有项目...如何修改我的代码以获取特定视图?

问题描述

我创建了一个 SPFX Web 部件来从列表中获取项目,并且工作正常。 我有一行...

resultData = await sp.web.lists.getByTitle(this.properties.listName).items.select(...colsToSelect).orderBy(localColumnToOrderBy,true).get().then((items: any) = > {

我现在只需要从特定视图中获取项目。

有人知道怎么修改吗?

我试过... resultData = await sp.web.lists.getByTitle(this.properties.listName).views.getByTitle("我的视图名称")().items.select(...colsToSelect).orderBy(localColumnToOrderBy,true).get( ).then((items: any) => {

但它不喜欢它!

谢谢

解决方法

为了加载列表的特定视图,我使用了 renderListDataAsStream 函数(它有更多像标准 get() 那样的好处)。

加载数据:

if (viewId !== null) {
  const overriderenderListDataParams: any = {
    View: viewId
  };
  const renderListDataParams: any = {
    RenderOptions: 1687
  };
  rawData = await sp.web.lists.getById(this.props.ListToDisplay).renderListDataAsStream(renderListDataParams,overriderenderListDataParams);
  } else {
    const renderListDataParams: any = {
      RenderOptions: 1687
    };
    rawData = await sp.web.lists.getById(this.props.ListToDisplay).renderListDataAsStream(renderListDataParams); 
}

要获取列表的视图:

const viewData = await sp.web.lists.getById(this.props.ListToDisplay).views.filter('Hidden ne true').get();