index.jsx 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import React, { useState } from 'react';
  2. import { Collapsible, Button } from '@douyinfe/semi-ui/';
  3. class OldDemo extends React.Component {
  4. constructor(props) {
  5. super(props);
  6. this.state = {
  7. isOpen: false,
  8. isChildOpen: false,
  9. activeKey: '',
  10. };
  11. this.toggle = this.toggle.bind(this);
  12. this.toggleChild = this.toggleChild.bind(this);
  13. }
  14. toggle() {
  15. this.setState({ isOpen: !this.state.isOpen });
  16. }
  17. toggleChild() {
  18. this.setState({ isChildOpen: !this.state.isChildOpen });
  19. }
  20. render() {
  21. const { isOpen, isChildOpen } = this.state;
  22. const collapsed = (
  23. <ul key={2} >
  24. <li>
  25. <p>Semi Design 以内容优先进行设计。</p>
  26. </li>
  27. <li>
  28. <p>更容易地自定义主题。</p>
  29. </li>
  30. <li>
  31. <p>适用国际化场景。</p>
  32. </li>
  33. <li>
  34. <p>效率场景加入人性化关怀。</p>
  35. </li>
  36. </ul>
  37. );
  38. return (
  39. <div>
  40. <Button onClick={this.toggle}>Toggle</Button>
  41. <br />
  42. <Collapsible
  43. isOpen={isOpen}
  44. keepDOM
  45. >
  46. <div key={1} >
  47. Semi Design的设计原则包括:<Button onClick={this.toggleChild}>Toggle List</Button>
  48. </div>
  49. <Collapsible isOpen={isChildOpen} >
  50. {collapsed}
  51. </Collapsible>
  52. </Collapsible>
  53. </div>
  54. );
  55. }
  56. }
  57. const Demo = () => {
  58. const [isOpen, setOpen] = useState(false);
  59. const [isChildOpen, setChildOpen] = useState(false);
  60. const collapsed = (
  61. <ul>
  62. <li>
  63. <p>Semi Design 以内容优先进行设计。</p>
  64. </li>
  65. <li>
  66. <p>更容易地自定义主题。</p>
  67. </li>
  68. <li>
  69. <p>适用国际化场景。</p>
  70. </li>
  71. <li>
  72. <p>效率场景加入人性化关怀。</p>
  73. </li>
  74. </ul>
  75. );
  76. const toggle = () => {
  77. setOpen(!isOpen);
  78. };
  79. return (
  80. <div>
  81. <Button onClick={toggle}>Toggle</Button>
  82. <br />
  83. <Collapsible isOpen={isOpen}>
  84. <div>
  85. <span>Semi Design的设计原则包括:</span>
  86. <Button onClick={() => setChildOpen(!isChildOpen)}>Toggle List</Button>
  87. </div>
  88. <Collapsible isOpen={isChildOpen}>{collapsed}</Collapsible>
  89. </Collapsible>
  90. </div>
  91. );
  92. };
  93. export default Demo;