【发布时间】:2021-12-26 20:23:08
【问题描述】:
我有 3 个与此问题有关的文件。一个是组件文件,一个是JS库文件,一个是store文件。
存储文件:
import { writable } from "svelte/store";
export const appStore = writable({
currentPage : '',
});
库文件:
import { appStore } from "../stores/appStore";
let store;
appStore.subscribe(data => {
store = data;
});
export async function post() {
console.log(store);
}
最后是组件文件:
import { test } from '$lib/req_utils';
import { appStore } from "../../stores/AppStore";
appStore.update(store => {
store.currentPage = 'login';
return store;
});
function handleLogin() {
test();
}
基本上,当组件文件被加载时,store 中的 currentPage 被设置为 'login' 并且当 handleLogin 事件被触发时。在我的库 JS 中调用了测试函数,库 JS 将输出 appStore.currentPage 的值 - 正确的将是“登录”。
但是,当我尝试在组件文件中使用自动订阅时,如下所示:
import { test } from '$lib/req_utils';
import { appStore } from "../../stores/AppStore";
$appStore.currentPage = 'login';
function handleLogin() {
test();
}
商店似乎没有更新(在库 JS 中检查 test() 中的值时)
根据我看过的文档和教程,上面应该可以工作吗?
【问题讨论】:
标签: svelte