当前模拟的是:列表中的数据要分给不同的组件渲染,每个item是有多个模块拼凑起来的。

    1. import { Fragment } from 'react'
    2. // 数据源
    3. const dataSource = [
    4. {
    5. a: 1,
    6. b: 1,
    7. },
    8. {
    9. a: 2,
    10. b: 2,
    11. },
    12. ]
    13. // 循环
    14. const InfiniteList = ({ dataSource, itemRender }) => {
    15. return dataSource.map((dataItem, dataIndex) => <Fragment key={dataIndex}>{itemRender({ ...dataItem })}</Fragment>)
    16. }
    17. // item的子项1
    18. const NoteCard = props => <h1>{props.a}</h1>
    19. // item的子项2
    20. const NoteComment = props => <p>{props.b}</p>
    21. // 每一个item
    22. const NoteWrapper = props => (
    23. <Fragment>
    24. <NoteCard {...props} />
    25. <NoteComment {...props} />
    26. </Fragment>
    27. )
    28. const NoteList = ({ dataSource }) => <InfiniteList dataSource={dataSource} itemRender={NoteWrapper} />