Unlike a standard HTML <form>
, the Form
component does not update the page
props when the user submits the form. Instead, the
useFormSubmit
hook should be used to consume any
pending or response data.
If you wish to have the same behavior between <form>
and <Form>
(update the
page on submit), then you can wrap your Next.js app component with our provider.
note: Using the hook is the recommended approach to update the page props. The whole purpose of this provider, is to force a full page update on state change. That might not be what you want.
When including our provider, the pages will initially render with GET data. Which is Next.js default behavior. Once the form is submitted, the handler result data is provided to the page component.
note: This provider is not needed when returning a `redirect` from mutation handlers. It's only needed when returning `json`, and you need to have that data in the page props.
Enough warnings, here are the implementation examples.
#Example without custom app component
Add the following code to /pages/_app.js
import { withNextRuntime } from 'next-runtime/app'; export default withNextRuntime();
#Example with custom app component
Provide your App component as argument, if you're already using a custom one:
import { withNextRuntime } from 'next-runtime/app'; function MyApp({ Component, pageProps }) { return <Component {...pageProps} />; } export default withNextRuntime(MyApp);