Skip to content

Commit b372d43

Browse files
fix(solid-form): fix AppField rerender when calling field function #1933 (#1934)
* fix(solid-form): fix AppField rerender when calling field function * fix(solid-form): fix AppField rerender when calling field function * chore: fix eslint * chore: add changeset --------- Co-authored-by: Corbin Crutchley <[email protected]>
1 parent c753d5e commit b372d43

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

.changeset/yellow-mugs-sniff.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@tanstack/solid-form': patch
3+
---
4+
5+
Using any Signal inside the Form.AppField render function no longer causes the entire component to re-run whenever that Signal changes.

packages/solid-form/src/createFormHook.tsx

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
import { createContext, splitProps, useContext } from 'solid-js'
2-
import { createForm } from './createForm'
1+
import {
2+
createComponent,
3+
createContext,
4+
splitProps,
5+
useContext,
6+
} from 'solid-js'
37
import { createFieldGroup } from './createFieldGroup'
4-
import type { AppFieldExtendedSolidFieldGroupApi } from './createFieldGroup'
8+
import { createForm } from './createForm'
59
import type {
610
AnyFieldApi,
711
AnyFormApi,
@@ -21,6 +25,7 @@ import type {
2125
ParentProps,
2226
} from 'solid-js'
2327
import type { FieldComponent } from './createField'
28+
import type { AppFieldExtendedSolidFieldGroupApi } from './createFieldGroup'
2429
import type { SolidFormExtendedApi } from './createForm'
2530

2631
/**
@@ -357,7 +362,13 @@ export function createFormHook<
357362
<form.Field {...fieldProps}>
358363
{(field) => (
359364
<opts.fieldContext.Provider value={field}>
360-
{childProps.children(Object.assign(field, opts.fieldComponents))}
365+
{createComponent(
366+
() =>
367+
childProps.children(
368+
Object.assign(field, opts.fieldComponents),
369+
),
370+
{},
371+
)}
361372
</opts.fieldContext.Provider>
362373
)}
363374
</form.Field>

0 commit comments

Comments
 (0)