问题标签 [svelte-store]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
svelte - Svelte 不会从输入更新派生值
当我加载页面时,$greeting
显示正确的值。
出于某种原因,当我更改input
.
App.svelte
商店.js
svelte - 如何推迟渲染直到 ajax 调用完成
我正在重构一个从服务器上的 json 文件加载语言标签的 React 应用程序。使用 Ajax 调用从服务器提取数据,该调用更新包含所有语言标签的存储。这是一些说明问题的代码。
应用程序.js
这是商店的设置方式。ajax 调用使用标签更新存储。
store.js
但是,当我运行应用程序时,我还没有访问 LABELS 变量的权限,也没有在解析 fetch 调用时更新它。这是错误消息。
我在 React 中解决这个问题的方法是<App />
仅在从服务器获取语言标签之后渲染整个内容。我还没有想出使用Svelte解决这个问题的方法。
请指教。
解决方案
根据@tehshrike 的建议,我将其设置getLang
为异步函数并在组件上使用 await 块App.svelte
,这是应用程序的入口点。这样,当 Promise 在获取语言标签后解决时,App 就会呈现(代码为了便于说明而缩写)。
App.svelte
svelte - 在一个主要对象中对不同商店进行分组的最佳方法 - Svelte
所以在过去的一周里,我一直在尝试一些 Svelte。我想要一些简单的组件,比如说一个由商店管理的计数器(与 API 文档中显示的方式相同)。我还将有一个用于他自己商店的待办事项列表的组件,以及另一个将在他自己的商店中再次抛出随机事实的组件。
现在我想要一个大的主要对象,比如:
我可以从我的组件中获取具有初始值的对象,但我无法使其具有反应性,这意味着如果我更新计数器值或请求另一个随机事实,我希望 bigObject 使用这些新闻值进行更新。 ..
你们如何处理这种情况?
谢谢,
svelte - 如何坚持苗条的商店
是否有任何直接选项可以持久保存苗条的存储数据,以便即使刷新页面,数据也将可用。
我没有使用本地存储,因为我希望这些值是反应性的。
javascript - 如何将苗条组件的状态绑定到 Sapper 中的查询字符串
我的工兵应用程序围绕一个表格组件。此表组件具有我想在 URL 的查询字符串中表示的状态(偏移量、限制、排序、过滤器等)。
该表目前通过直接更新其状态可以正常工作:
我看到有页面只读存储可以让我访问查询字符串的当前值。我想我可以使用类似的东西URLSearchParams
来生成更新相关值的链接。
有没有更好的方法来处理这个问题(某种直接将变量绑定到查询字符串的方法)?如果没有,用更新的查询字符串生成链接的最佳方法是什么?
编辑:
我目前的解决方案是以下功能:
我在一个a
标签中引用了将上面的按钮替换为:
它有效,但我觉得应该有更好的方法
svelte - 在 SvelteJS v3 中的循环内访问 Store 的值
我正在从一组具有store
其某些属性的对象构建仪表板。每个商店都从不同的来源独立更新。
我的问题是我无法读取循环store
内的值。each
为了简化以下代码示例,我使用tweened
而不是store
以下代码也可用于 Svlete REPL https://svelte.dev/repl/9a17102e7d32471a940ba007e5b56db0?version=3.6.7
部分{item.$value}
返回undefined
javascript - 如果文本输入在每个循环内,Svelte 组件不会使用新值重新渲染
我有一个包含each
循环内输入的编辑器。当输入中的文本发生更改时,可写存储会更新,但在另一个组件中,我不会触发来自存储重新渲染的值的循环。
REPL:https ://svelte.dev/repl/0fa5f5cd1ee247afbbdc9a77266fb4f8?version=3.9.1
上面的 REPL 实时显示了问题 - 输入第二个输入不会更新文本,而在循环之外它可以正常工作。我怎样才能让它正确地重新渲染?
svelte - Svelte:App 构造函数的第二次实例化覆盖了第一次实例化,Props 进入 Stores 问题?
你好 Sveltermeisters,
问题:我正在尝试在同一页面上初始化 App 的两个实例。App 在 main.js 文件中作为页面上的全局变量公开,如下所示:
然后在一个 html 页面中初始化两个应用实例
奇怪的是:第二个 app 的 props 会覆盖第一个 app 的 props,并且每个 app 的状态始终保持同步,无论打开哪个 app。
我的断言:由于道具被倾倒到商店中,第二个实例将覆盖第一个实例。由于每个应用程序都引用同一组商店,因此它们的数据始终保持同步。
这是真的?如果是这样,我该如何设计我的商店以使他们的数据保持独立?
model - 如何在 Svelte 视图中最好地实现可共享的数据模型
我创建了一个包含表单的视图,该表单的控件绑定到模型对象上的属性,该对象也由其他视图共享)。我试图弄清楚是否真的有必要或推荐使用 Store 范例。
例如,模型看起来有点像:
...并且 UI 将通过以下方式将各种输入绑定到模型:
理想情况下,我想将这些论文作为一个整体。从我看到的所有示例中,没有这样的东西。Svelte Stores 的目的是提供超细粒度、可共享的数据,以便我们基本上“存储”单个值吗?或者是否有示例显示在商店范式中使用的模型对象之类的东西?我是否错过了一些我需要通过使用 Svelte Store(类似于 Angular 的摘要)来利用的生命周期过程?
svelte - 如何在 svelte 中使用自定义存储方法?
我正在制作一个模式,其属性存储在商店中。而不是像这样打开它,从一个元素:on:click={() => $modal.isOpen = true}
我想这样打开它:
on:click={() => $modal.toggle()}
从一个元素。
这是我的代码:
当我登录modal
时,它只记录set, subscribe, update
方法。然后当我再次单击时,这些方法消失了:它正确地覆盖了它们,似乎我永远无法获得模态的初始化状态。我尝试使用this
或 参数 ( (a, b) =>
) 访问当前对象,但均未返回任何内容。