### 回答
在你的场景中,问题出在 `localStorage` 的全局性和键值命名的冲突上。`localStorage` 是在整个域下共享的,所以不同页面或组件如果使用相同的键名存储数据,那么它们访问和修改的是同一个值。
为了实现 B 页和 C 页计数相互独立的需求,你可以通过以下几种方式解决:
1. **使用不同的键名**:
为 B 页和 C 页的计数使用不同的键名存储。例如,B 页使用 `localStorage.setItem('countB', value)`,C 页使用 `localStorage.setItem('countC', value)`。
2. **命名空间策略**:
如果未来可能会有更多页面或组件需要独立的存储,可以考虑使用命名空间来组织键名,例如 `localStorage.setItem('pageB.count', value)` 和 `localStorage.setItem('pageC.count', value)`。
3. **使用 JSON 对象存储**:
你可以将多个计数存储在同一个键下的 JSON 对象中,但每个页面或组件只修改自己对应的值。例如,使用 `localStorage.setItem('counts', JSON.stringify({B: valueB, C: valueC}))`,然后在读取时解析 JSON 对象并访问对应的值。
4. **考虑使用其他状态管理工具**:
如果 `localStorage` 的使用变得复杂或难以管理,可以考虑使用如 Redux、MobX 或 Vuex 等状态管理工具,它们提供了更灵活和强大的状态管理能力。
确保在 B 页和 C 页分别使用不同的键名或命名空间来存储计数,这样就可以避免它们之间的数据同步问题。
如何在Navigation中使用LocalStorage有官方示例:参考链接如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V...