You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改SharePoint列表名称后无法通过SPFx代码获取列表项

解决多语言SharePoint站点中SPFx无法找到重命名列表的问题

问题背景

我们创建了默认语言为波兰语的SharePoint网站集,最初使用名为“My List Data”的列表,SPFx代码通过getByTitle可以正常获取数据。将列表重命名为“My_List_Data”并同步更新代码后,出现报错:

List 'My_List_Data' does not exist at site with URL 'https://contoso.sharepoint.com/sites/contoso'.

已确认列表确实以“My_List_Data”的名称存在。

可能原因及解决方案

1. 多语言站点的列表显示名称本地化问题

在多语言SharePoint站点中,列表的显示名称会根据站点语言版本自动本地化。你修改的可能是英文版本的显示名称,但当前SPFx代码运行时使用的是波兰语站点上下文,此时列表的显示名称可能仍是波兰语翻译后的名称,而非你设置的“My_List_Data”。

解决方法:

  • 直接通过列表ID获取数据(最可靠,不受语言影响):
    先获取列表的ID(可通过SharePoint站点内容页查看列表属性,或使用PnP PowerShell查询),然后修改代码:
    import { spfi, SPFI, SPFx } from '@pnp/sp';
    import '@pnp/sp/items';
    import '@pnp/sp/lists';
    import '@pnp/sp/webs';
    
    const sp: SPFI = getSP();
    // 替换为你的列表实际ID
    const listData = await sp.web.lists.getById("YOUR-LIST-ID-HERE").items.select("*").top(5000);
    console.log("listData:", listData);
    

2. 混淆了列表的显示名称与内部名称

SharePoint列表有**显示名称(Title)和内部名称(InternalName)**两个属性,getByTitle方法仅匹配显示名称。如果你误将列表的内部名称修改为“My_List_Data”,但显示名称未同步更新,就会导致代码找不到列表。

解决方法:

  • 确认列表的实际显示名称:
    访问站点的“网站内容”页面,查看列表的显示名称;或使用PnP PowerShell查询所有列表的显示名称和内部名称:
    Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/contoso"
    Get-PnPList | Select-Object Title, InternalName, Id
    
    确保代码中getByTitle的参数与列表的实际显示名称完全一致。

3. 站点上下文或缓存问题

  • 确认SPFx代码中的sp.web指向的是列表所在的网站:如果列表位于子站点,需要指定子站点的上下文,例如:
    const subWeb = sp.web.getByServerRelativeUrl("/sites/contoso/your-subsite");
    const listData = await subWeb.lists.getByTitle("My_List_Data").items.select("*").top(5000);
    
  • 清理浏览器缓存并重新部署SPFx包:旧的站点元数据或代码缓存可能导致获取的列表信息未更新。

内容的提问来源于stack exchange,提问作者thedeepponkiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 13:33:16