如何在 webpart 属性 spfx 的下拉列表中获取 SharePoint 在线站点中存在的各种列表

问题描述

下面是我正在使用的方法,我在下面的方法中做错了什么? 请告诉我。

      private async GetLists(): Promise<any>
          {
          console.log("Hitting GetLists Method");
       return await 
          this.context.spHttpClient.get(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists`,SPHttpClient.configurations.v1,{
             headers: [
                ['accept','application/json;odata=noMetadata'],['odata-version','']
                    ]
                   }).then((data) => 
                 {
                        //console.log("Total number of lists are " + data.length);
                                 return data;
                    });
                    }

解决方法

我的测试代码供您参考:

private GetLists(): Promise<any> {

    return this.context.spHttpClient.get(this.context.pageContext.web.absoluteUrl + "/_api/web/lists",SPHttpClient.configurations.v1,{
      headers: [
         ['accept','application/json;odata=nometadata'],['odata-version','']
             ]
            })

      .then((response: SPHttpClientResponse) => {
        
        return response.json();

      }).then(response=>console.log(response));

  }

测试结果: enter image description here

,

尝试使用 PnPjs:

private GetLists(): Promise<any> {
    return sp.web.lists.get().then((data) => {
      console.log("Total number of lists are " + data.length);
      return data;
    });
}

https://pnp.github.io/pnpjs/getting-started/