mirror of
https://github.com/zebrajr/react.git
synced 2025-12-07 12:20:38 +01:00
This exposes, but does not yet implement, a new experimental API called
useFormState. It's gated behind the enableAsyncActions flag.
useFormState has a similar signature to useReducer, except instead of a
reducer it accepts an (async) action function. React will wait until the
promise resolves before updating the state:
```js
async function action(prevState, payload) {
// ..
}
const [state, dispatch] = useFormState(action, initialState)
```
When used in combination with Server Actions, it will also support
progressive enhancement — a form that is submitted before it has
hydrated will have its state transferred to the next page. However, like
the other action-related hooks, it works with fully client-driven
actions, too.
36 lines
979 B
JavaScript
36 lines
979 B
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow
|
|
*/
|
|
|
|
// Export all exports so that they're available in tests.
|
|
// We can't use export * from in Flow for some reason.
|
|
export {default as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED} from './src/ReactDOMSharedInternals';
|
|
export {
|
|
createPortal,
|
|
createRoot,
|
|
hydrateRoot,
|
|
findDOMNode,
|
|
flushSync,
|
|
hydrate,
|
|
render,
|
|
unmountComponentAtNode,
|
|
unstable_batchedUpdates,
|
|
unstable_createEventHandle,
|
|
unstable_renderSubtreeIntoContainer,
|
|
unstable_runWithPriority, // DO NOT USE: Temporarily exposed to migrate off of Scheduler.runWithPriority.
|
|
useFormStatus as experimental_useFormStatus,
|
|
useFormState as experimental_useFormState,
|
|
prefetchDNS,
|
|
preconnect,
|
|
preload,
|
|
preloadModule,
|
|
preinit,
|
|
preinitModule,
|
|
version,
|
|
} from './src/client/ReactDOM';
|