Svelte中Reactive Store变量出现undefined问题求助
Svelte Store 获取变量为undefined的问题解决
核心问题有两个:
Store文件的导出方式错误
你在./store/config.js里用了export let导出store,但Svelte store实例应该用export const导出——writable返回的是一个固定的store对象,不需要用let允许修改引用,错误的导出方式会导致导入时无法正确获取store实例。组件内错误覆盖了导入的store变量
App.svelte里的$: config = $config || {};这行代码,会把原本导入的config(store对象)直接覆盖成$config的当前值。组件初始化阶段$config的订阅还未完全完成,这时候$config可能是undefined,最终导致config被赋值为undefined,所以console.log(config)输出undefined。
修正后的代码:
1. ./store/config.js
import { writable } from 'svelte/store'; // 改用export const导出store实例 export const config = writable({ languageCode: "NL" });
2. App.svelte
<script> import { config } from "./store/config.js"; // 直接通过$config获取响应式的store值,无需覆盖原变量 $: console.log($config); // 会输出 { languageCode: "NL" } // 如果需要将store值存入变量,使用新变量名避免覆盖 $: currentConfig = $config || {}; // 此时console.log(config)会输出正确的store对象 console.log(config); </script>
内容的提问来源于stack exchange,提问作者Vasili
相关产品推荐
相关产品推荐

