根据运行脚本的上下文,有两种方法可以从 svelte 存储中访问值(以及随后的子值):
- 在
.svelte 文件中
- 在
.svelte 文件之外(例如.js 或.ts 文件)
旁注:正如 Stephane Vanraes 在他们的回答中指出的那样,如果您没有在其他任何地方修改数组的内容,建议使用 Object.freeze,因为将其放入您的 readable 只会阻止引用从改变而不是它的内容。
1。在.svelte 文件中
在这里,您可以在存储变量前面添加 $ 以访问它们的值(以及随后的子值):
<script>
import { readable } from 'svelte/store';
const columns = readable(
Object.freeze(
['id', 'postId', 'name', 'email', 'body'],
),
);
console.log($columns); // ['id', 'postId', 'name', 'email', 'body']
console.log($columns[0]); // 'id'
</script>
2。在.svelte 文件之外
在这里,您可以使用从svelte/store 导出的get 方法:
import { get, readable } from 'svelte/store';
const columns = readable(
Object.freeze(
['id', 'postId', 'name', 'email', 'body'],
),
);
console.log(get(columns)); // ['id', 'postId', 'name', 'email', 'body']
console.log(get(columns[0])); // 'id'