更改reactstrap UncontrolCollapse的默认行为

时间:2018-12-03 09:17:29

标签: reactjs reactstrap

是否可以在不使用状态处理程序的情况下将reactstrap UncontrolledCollapse组件的行为默认更改为打开?

2 个答案:

答案 0 :(得分:2)

如果您想不受控制地折叠并且不想切换打开/关闭状态,则可以将isOpen道具传递为true,它将起作用。

 <UncontrolledCollapse isOpen={true} toggler="#toggler">
      <Card>
        <CardBody>
          <div>UncontrolledCollapse</div>
        </CardBody>
      </Card>
  </UncontrolledCollapse>

但是如果您以后想使其变为可切换状态,则可以执行以下操作

class App extends React.Component {
  state = { isOpen: true }; // isOpen is set to true by default.

  handleClick = () => {
    this.setState(prevState => ({ isOpen: !prevState.isOpen }));
  };

  render() {
    return (
      <div className="App">
        <button id="toggler" onClick={this.handleClick}>
          Toggle
        </button>
        <UncontrolledCollapse isOpen={this.state.isOpen} toggler="#toggler">
          <Card>
            <CardBody>
              <h1>Hello CodeSandbox</h1>
              <h2>Start editing to see some magic happen!</h2>
            </CardBody>
          </Card>
        </UncontrolledCollapse>
      </div>
    );
  }
}

这是codeandbox的链接:https://codesandbox.io/s/jlo137vynw

答案 1 :(得分:1)

您需要在defaultOpen={true}组件中设置属性UncontrolledCollapse

https://github.com/reactstrap/reactstrap/blob/master/src/UncontrolledCollapse.js处查看UncontrolledCollapse的原始代码