kit icon indicating copy to clipboard operation
kit copied to clipboard

fix: `fields.value()` initial data missing

Open sillvva opened this issue 3 weeks ago • 1 comments

fixes #14972

The issue happens when you assign form.fields to a variable and then attempt to access .value(). As a result, this results in a hydration mismatch.

const fields = test.fields;
const initial = $state({ initial: "value" });
fields.set(initial);
// On the server, this results in: {}
$inspect(fields.value());
// And this results in: { initial: "value" }
$inspect(test.fields.value());

Before: https://stackblitz.com/edit/sveltekit-308957-8ktcalyf?file=src%2Froutes%2F%2Bpage.svelte

After: https://stackblitz.com/edit/sveltekit-308957-8ktcalyf-apue36pc?file=src%2Froutes%2F%2Bpage.svelte


Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

  • [x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • [x] This message body should clearly illustrate what problems it solves.
  • [x] Ideally, include a test that fails without this PR but passes with it.

Tests

  • [x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

  • [x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

Edits

  • [x] Please ensure that 'Allow edits from maintainers' is checked. PRs without this option may be closed.

sillvva avatar Nov 23 '25 18:11 sillvva