index.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { ScrollList, ScrollItem, Button } from '@douyinfe/semi-ui';
  2. import React from 'react';
  3. class ScrollListDemo extends React.Component {
  4. constructor(props) {
  5. super(props);
  6. this.state = {
  7. selectIndex1: 1,
  8. selectIndex2: 1,
  9. selectIndex3: 1,
  10. };
  11. this.list = new Array(20).fill(0).map((itm, index) => {
  12. return { value: index, disabled: Math.random() + 0.2 > 1 };
  13. });
  14. }
  15. onSelect = event => {
  16. this.setState({
  17. ['selectIndex' + event.type]: event.value,
  18. });
  19. };
  20. handleClose = () => {
  21. console.log('close');
  22. };
  23. renderFooter = () => {
  24. return (
  25. <Button size="small" type="primary" onClick={this.handleClose}>
  26. Ok
  27. </Button>
  28. );
  29. };
  30. render() {
  31. let list = this.list;
  32. return (
  33. <ScrollList header={'hello world'} footer={this.renderFooter()}>
  34. <ScrollItem
  35. mode="normal"
  36. list={list}
  37. type={1}
  38. selectedIndex={this.state.selectIndex1}
  39. onSelect={this.onSelect}
  40. aria-label="1"
  41. />
  42. <ScrollItem
  43. mode="normal"
  44. list={list}
  45. type={2}
  46. selectedIndex={this.state.selectIndex2}
  47. onSelect={this.onSelect}
  48. aria-label="2"
  49. />
  50. <ScrollItem
  51. mode="normal"
  52. list={list}
  53. type={3}
  54. selectedIndex={this.state.selectIndex3}
  55. onSelect={this.onSelect}
  56. aria-label="3"
  57. />
  58. </ScrollList>
  59. );
  60. }
  61. }
  62. export default ScrollListDemo;