Basic conceptsInputs

Basic concepts

Inputs

Learn how to pass values to be used inside the flow.


Inputs

As the flow progresses, an object called the flow values is made available to each element. It contains the values collected from form elements and variable elements encountered so far.

To include additional values from the start, use the inputs prop of the Formity component.

TSX
type Schema = {
  render: React.ReactNode;
  struct: [s.Form<{ language: string }>, s.Return<{ language: string }>];
  inputs: {
    languages: { label: string; value: string }[];
    defaultLanguage: string;
  };
  params: Record<never, never>;
};

const flow: Flow<Schema> = [
  {
    form: {
      fields: ({ defaultLanguage }) => ({
        language: [defaultLanguage, []],
      }),
      render: ({ fields, values, back, next }) => (
        <LanguageForm
          fields={fields}
          languages={values.languages}
          back={back}
          next={next}
        />
      ),
    },
  },
  {
    return: ({ language }) => ({ language }),
  },
];

return (
  <Formity<Schema>
    flow={flow}
    inputs={{
      languages: [
        { label: "English", value: "en" },
        { label: "Spanish", value: "es" },
        { label: "Catalan", value: "ca" },
      ],
      defaultLanguage: "en",
    }}
    onReturn={onReturn}
  />
);