Collapse
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
import React, { useState } from 'react';
import { Collapse, Button, CardBody, Card } from 'reactstrap';
const Example = (props) => {
const [isOpen, setIsOpen] = useState(false);
const toggle = () => setIsOpen(!isOpen);
return (
<div>
<Button color="primary" onClick={toggle} style={{ marginBottom: '1rem' }}>Toggle</Button>
<Collapse isOpen={isOpen}>
<Card>
<CardBody>
Anim pariatur cliche reprehenderit,
enim eiusmod high life accusamus terry richardson ad squid. Nihil
anim keffiyeh helvetica, craft beer labore wes anderson cred
nesciunt sapiente ea proident.
</CardBody>
</Card>
</Collapse>
</div>
);
}
export default Example;
Properties
Collapse.propTypes = {
...Transition.propTypes, // see note below
isOpen: PropTypes.bool,
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
PropTypes.node
]),
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.node,
navbar: PropTypes.bool,
cssModule: PropTypes.object,
innerRef: PropTypes.object,
};
Collapse is wrapped in a Transition
component from react-transition-group/transition
. Transition props are passed through to this wrapper. Refer to the Transition
documentation for details: http://reactcommunity.org/react-transition-group/transition/.
Events
Use the onEnter
, onEntering, onEntered, onExiting and onExited props for callbacks when the Collapse has finished opening (entering) or closing (exiting).
Current state: Closed
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
import React, { useState } from 'react';
import { Collapse, Button, CardBody, Card } from 'reactstrap';
const Example = (props) => {
const [collapse, setCollapse] = useState(false);
const [status, setStatus] = useState('Closed');
const onEntering = () => setStatus('Opening...');
const onEntered = () => setStatus('Opened');
const onExiting = () => setStatus('Closing...');
const onExited = () => setStatus('Closed');
const toggle = () => setCollapse(!collapse);
return (
<div>
<Button color="primary" onClick={toggle} style={{ marginBottom: '1rem' }}>Toggle</Button>
<h5>Current state: {status}</h5>
<Collapse
isOpen={collapse}
onEntering={onEntering}
onEntered={onEntered}
onExiting={onExiting}
onExited={onExited}
>
<Card>
<CardBody>
Anim pariatur cliche reprehenderit,
enim eiusmod high life accusamus terry richardson ad squid. Nihil
anim keffiyeh helvetica, craft beer labore wes anderson cred
nesciunt sapiente ea proident.
</CardBody>
</Card>
</Collapse>
</div>
);
}
export default Example;
Uncontrolled Collapse
For the most basic use-case, an uncontrolled component can provide the functionality wanted without the need to manage/control the state of the component. UncontrolledCollapse
does not require an isOpen
prop. Instead pass a toggler
prop. The toggler
prop is a string which will run querySelectorAll to find dom elements which will trigger toggle. The defaultOpen
prop controls the initial state.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nesciunt magni, voluptas debitis similique porro a molestias consequuntur earum odio officiis natus, amet hic, iste sed dignissimos esse fuga! Minus, alias.
import React from 'react';
import { UncontrolledCollapse, Button, CardBody, Card } from 'reactstrap';
const Example = () => (
<div>
<Button color="primary" id="toggler" style={{ marginBottom: '1rem' }}>
Toggle
</Button>
<UncontrolledCollapse toggler="#toggler">
<Card>
<CardBody>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nesciunt magni, voluptas debitis
similique porro a molestias consequuntur earum odio officiis natus, amet hic, iste sed
dignissimos esse fuga! Minus, alias.
</CardBody>
</Card>
</UncontrolledCollapse>
</div>
);
export default Example;