Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
React component package that splits complicated forms into multiple steps using reactstrap and Bootstrap.
React Wizard (react-bootstrap-wizard) is an open-source React component for splitting a complicated form or flow into multiple steps, built with reactstrap and Bootstrap. It takes an array of step definitions — each with a name, icon, component, and optional props — and renders a navigable multi-step wizard with support for per-step validation and a finish callback. The package is published on npm (current version 0.0.9) and distributed under the MIT license.
react-bootstrap-wizard is a React component package that turns a list of step components into a wizard UI. You provide a steps array where each entry contains a stepName, stepIcon, component, and optionally stepProps, and the wizard generates navigation tabs, step content, and Previous/Next/Finish buttons. It runs on React and depends on reactstrap and Bootstrap CSS, which must be installed separately. The component supports both class components and function components (via React.forwardRef and React.useImperativeHandle).
Install the package with npm install react-bootstrap-wizard, then import ReactWizard and render it with a steps array and optional props. Each step component can expose an isValidated function and its own state; the wizard accesses these through refs, calling isValidated before allowing the user to advance. When the user clicks Finish, the wizard invokes finishButtonClick with an object containing all step states.
react-bootstrap-wizard is free and open source. The repository badge shows the MIT license, and the npm package is published publicly with no paid tiers mentioned.
Set the validate prop to true on ReactWizard and implement an isValidated function with no parameters in each step component. If the function returns true, the user can proceed; if false, they are blocked. Steps without an isValidated function are treated as valid by default.
Function components must use React.forwardRef to forward a ref, then use React.useImperativeHandle to expose an isValidated function and a state object. This lets the wizard access those through the ref, as shown in the README's function component example.
Yes. The README recommends importing the component with next/dynamic and defining placeholder window and document globals when running server-side. This prevents SSR errors while keeping the wizard client-side.
You need to install reactstrap and bootstrap alongside react-bootstrap-wizard. The component relies on reactstrap's components and Bootstrap's CSS for layout and styling, so both are required for it to render correctly.
