【发布时间】:2021-12-18 22:30:56
【问题描述】:
我有一个 Svelte 应用程序,它将使用浏览器历史 API 进行自己的路由。我想提供一个changeRoute(newRouteDetails) 函数并使其可用于 Svelte 应用程序中的所有组件。在更改为新 URL 之前,它需要访问各种 Svelte 商店的值来存储当前状态。
起初,我以为我可以在stores.js文件中定义函数,将其导出并在我的组件中使用。
我以为我可以使用 $storeName 访问商店的当前值,但这不起作用(我认为因为该函数位于 .js 文件而不是 .svelte 文件中,但它不是一个纤细的组件,所以我认为它不应该在 .svelte 文件中)。
我发现解决此问题的唯一方法是:使用get(),但建议不要在docs 中使用,或者要求调用函数的事物传入所有存储值。
但我觉得我可能错过了什么?
我已经制作了三个 REPL(仍然不知道它代表什么!),它们使用一个简单的 hello world 风格的应用程序来演示这个问题,我希望 updateName 函数结合传入的值和一个值从商店更新名称。
假设(2)在某种程度上“不是苗条的方式”,如果您只有一两个商店,那么(3)很好,但似乎也不完整(例如,如果函数想要等待tick() 和然后获取更新的存储值?),我们如何共享这样的函数?
【问题讨论】: