SvelteKit:无法引用 <script context="module" /> 内的存储值

Raj*_*dda 3 svelte svelte-store sveltekit

SvelteKit / Svelte:无法从上下文模块中的“存储”获取或设置(读取或写入)值。

import {selectedStore} from "src/storelocation";

<script context="module">
  export const load = async ({params})=> {
    
     $selectedStore.value // throwing error
  }
Run Code Online (Sandbox Code Playgroud)

Raj*_*dda 8

import {selectedStore} from "src/storelocation";
import { get } from 'svelte/store';

<script context="module">
export const load = async ({params})=> {

  // use this
 get(selectedStore).value;
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的回答。您介意解释一下为什么会出现这种情况或指出我在某个地方可以找到答案吗? (3认同)
  • @BlaviButcher如果我理解正确的话,原因是因为[模块脚本中定义的变量不是反应性的](https://svelte.dev/docs#component-format-script-context-module),因此你无法访问商店使用反应式符号(`$mystore`)但手动调用存储方法是可以的(`mystore.set(…)`和`get(mystore).value`)。[这是一个带有示例的 github 问题](https://github.com/sveltejs/svelte/issues/4306)。 (3认同)