import { useForm } from '@tanstack/react-form' import { createFileRoute } from '@tanstack/react-router' export const Route = createFileRoute('/demo/form/sv')({ component: RouteComponent, }) const formFields = [ { fieldName: 'transfer.fee', description: 'Transfer Fee', currentValue: '0.01', }, { fieldName: 'threshold', description: 'Threshold', currentValue: '20', }, ] function RouteComponent() { const form = useForm({ defaultValues: { summary: '', // field that always exists ...formFields.reduce( (acc, field) => { acc[field.fieldName] = field.currentValue return acc }, {} as Record, ), }, onSubmit: async ({ value }) => { console.log('Form submitted:', value) console.log('fee', value['transfer.fee'] as string) // Element implicitly has an 'any' type because expression of type '"transfer.fee"' can't be used to index type '{ summary: string; }'. // Property 'transfer.fee' does not exist on type '{ summary: string; }'. }, }) return (
{ e.preventDefault() e.stopPropagation() form.handleSubmit() }} > (
field.handleChange(e.target.value)} />
)} /> {formFields.map((fieldConfig) => ( (
field.handleChange(e.target.value)} />
)} /> ))} [state.canSubmit, state.isSubmitting]} children={([canSubmit, isSubmitting]) => ( )} />
) }