Migrating to v2
React-Bootstrap v2 adds full compatibility with Bootstrap 5. Because Bootstrap 5 is a major rewrite of the project, there are significant breaking changes from React-Bootstrap v1.
PLEASE FIRST READ THE UPSTREAM BOOTSTRAP MIGRATION GUIDE
View migration guide
React-Bootstrap only contains components that are present in vanilla Bootstrap. If functionality was removed from Bootstrap, then it was also removed from React-Bootstrap. This guide does not repeat information found in the upstream migration guide. Its goal is to document React-Bootstrap-specific API changes and additions.
Versioning
We will continue to provide general maintenance for Bootstrap 4 components, because there are many projects that continue to depend on Bootstrap 4 support in react-bootstrap. react-bootstrap package versions will be as follows:
- Bootstrap 3 support will continue in react-bootstrap versions <
v1.0.0 - Bootstrap 4 support will be in react-bootstrap versions >=
v1.0.0 - Bootstrap 5 support will be in react-bootstrap versions >=
v2.0.0
We are not committing to keeping breaking changes in lockstep with bootstraps major releases, there may be a React-Bootstrap v3 targeting Bootstrap 6 depending on what's best for the project.
Summary of breaking changes from v1.x
Below is a rough account of the breaking API changes as well as the minimal change to migrate
General
- React >= 16.14.0 is now required to support the new JSX transform
Accordion
- accordion is no longer card-based and has been rewritten with different markup.
AccordionContext's value interface has changed.AccordionTogglehas been renamed toAccordionButton.useAccordionTogglehas been renamed touseAccordionButton.
Badge
varianthas been renamed tobg.
ButtonGroup
- removed
toggle.
CardColumns
- dropped
CardColumns.
CloseButton
- Removed
labelprop in favor ofaria-label. - Added
variantprop.
Col
ColOrderis now maximum 5 instead of 12.- When using objects in breakpoint props,
spanis no longertrueby default.
Dropdown
- dropdown dividers use
hrby default instead ofdiv. - Alignment values
leftandrightchanged tostartandendrespectively. - Removed
alignRight. Usealign="end"instead.
DropdownButton
- Removed
menuAlignprop in favor ofalign.
DropdownItem
- removed
onSelect. UseonSelectin the parentDropdowninstead.
DropdownMenu
- Removed
alignRight. Usealign="end"instead.
Form
- removed
inline. - removed
bsPrefix.
FormCheck
- removed
bsCustomPrefixandcustomin favor ofbsSwitchPrefix. - feedback type is now controlled by
feedbackTypeinstead ofisValidandisInvalid.
FormCheckInput
- removed
bsCustomPrefix. - removed
isStatic.
FormCheckLabel
- removed
bsCustomPrefix. - changed base class from
form-check-inputtoform-check-label.
FormControl
- dropped
asprop supportingselecttags in favor of FormSelect. - removed
custom. - removed
bsCustomPrefix. - dropped support for
typesupporting therangevalue in favor of FormRange. - add color picker
FormFile
- dropped all file-related components. Use
<Form.Control type="file" />instead.
FormGroup
- removed
bsPrefix. The.form-groupclass is no longer supported in Bootstrap, but this component is useful for passingcontrolIdto labels and inputs. To handle spacing, use margin utilities instead.
FormRow
- removed. Use
Rowinstead.
InputGroup
- dropped
InputGroupPrependandInputGroupAppend. Buttons andInputGroupTextcan now be added as direct children.
Nav
- keyboard navigation has been removed. If you need this, use
Tabsinstead.
NavLink
- removed
onSelect. UseonSelectin the parentNavinstead.
Popover
- renamed
contentprop tobodyto coincide with PopoverContent component name change.
PopoverContent
- renamed to PopoverBody to match class name.
PopoverTitle
- renamed to PopoverHeader to match class name.
ResponsiveEmbed
- renamed to Ratio.
- aspectRatio options changed to '1x1' | '4x3' | '16x9' | '21x9'.
SafeAnchor
- renamed to Anchor.
SplitButton
- Removed
menuAlignprop in favor ofalign.
Toast
delayis now default 5000 ms.
ToggleButton
- add
bsPrefix. idis now required. This is to allow toggling of the input due to markup changes in Bootstrap.