从 API 版本 2027-01 开始,在客户账户全页扩展中,Navigation API currententrychange 事件将 event.from 设置为顾客离开的那个页面,而不是他们导航到的页面。对于从 event.from 读取新页面的客户账户全页扩展来说,这是一个破坏性变更。请在将它们迁移到 2027-01 之前,更新代码以先读取 shopify.navigation.currentEntry。
变更内容
在客户账户全页扩展(customer-account.page.render 和 customer-account.order.page.render)中,currententrychange 传递一个 NavigationCurrentEntryChangeEvent,其 from 属性被记录为上一个历史记录条目。在 API 版本 2026-10 及更早版本中,from 是新条目,与 shopify.navigation.currentEntry 的值相同。从 2027-01 开始,from 是上一个条目。
受影响对象
使用 event.from 来查找顾客导航到的页面的 API 版本 2027-01 或更高版本的全页扩展会受到影响。
2026-10 及更早版本的扩展不受影响,因为它们的行为没有改变。任何版本中,读取 shopify.navigation.currentEntry 的扩展(包括使用 useNavigationCurrentEntry 钩子的扩展)都不受影响。
破坏性变更与迁移指南
在 2027-01 上,从 event.from.url 读取新页面的代码会获取上一个页面的 URL。例如,一个根据 event.from 选择要渲染的路由的扩展,在每次导航后仍会显示上一个路由。
将这些读取操作替换为 shopify.navigation.currentEntry.url。
变更前:
shopify.navigation.addEventListener('currententrychange', (event) => { setPath(new URL(event.from.url).pathname); });变更后:
shopify.navigation.addEventListener('currententrychange', () => { setPath(new URL(shopify.navigation.currentEntry.url).pathname); });更新后的代码适用于 API 版本 2025-10 及更高版本,因此您可以在更新 API 版本之前进行此更改。
需采取的操作
在将客户账户全页扩展更新到 2027-01 之前,请更新所有从 event.from 读取新页面的 currententrychange 处理程序。为了确认更新成功,请在您的扩展中在两个路由之间导航,并检查每次导航是否都显示了您导航到的页面。
相关文档
- 客户账户 UI 扩展的 Navigation API 参考

