我很难理解 Runes 和数据加载的用途。我加载了一个 supabase json 文件,我想全局访问数据。
// +page.server.js
export async function load() {
const [_portfolioSummary, error] = await getFullPortfolio('/');
return _portfolioSummary;
}
// shared.svelte.js
export let portfolioSummary = $state({});
// +page.js
import { portfolioSummary } from '../lib/js/shared.svelte.js';
export async function load({ data }) {
portfolioSummary = data.portfolioSummary;
}
我收到此错误:
TypeError:无法设置仅具有 getter
portfolioSummary
的属性#<Object>
我应该怎么做才能使其portfolioData
在全球范围内可以在任何地方使用它?
你应该直接从函数返回数据
load
。它将通过store自动在任何地方可用:。
$page.data
编辑:几分钟前,( )中也有一个基于符文的版本
page
$app/state
。@sveltejs/[email protected]
如果您尝试设置全局变量,您还会面临将属于一个用户的数据暴露给另一个用户的风险(因为服务器上的状态在所有请求之间共享)。
(导出
$state
需要将内容包装在属性中,例如{ current: ... }
,然后可以更新所述属性,因为无法重新分配导入本身。)