代码之家  ›  专栏  ›  技术社区  ›  kdizzle

使用故事书进行React table[v7]渲染

  •  0
  • kdizzle  · 技术社区  · 5 年前

    我试图在故事书中呈现react table组件 https://storybook.js.org/

    Error: Uncaught TypeError: Cannot read property 'map' of undefined
    at decorateColumnTree (vendors~main.4c20d65610ba8d62ac56.bundle.js:210768)
    at vendors~main.4c20d65610ba8d62ac56.bundle.js:211338
    at mountMemo (vendors~main.4c20d65610ba8d62ac56.bundle.js:186644)
    at Object.useMemo (vendors~main.4c20d65610ba8d62ac56.bundle.js:186866)
    at Object.useMemo (vendors~main.4c20d65610ba8d62ac56.bundle.js:217699)
    at useTable (vendors~main.4c20d65610ba8d62ac56.bundle.js:211337)
    at Table (main.4c20d65610ba8d62ac56.bundle.js:17507)
    at renderWithHooks (vendors~main.4c20d65610ba8d62ac56.bundle.js:186083)
    at mountIndeterminateComponent (vendors~main.4c20d65610ba8d62ac56.bundle.js:188317)
    at beginWork$1 (vendors~main.4c20d65610ba8d62ac56.bundle.js:189461)
    

    https://github.com/tannerlinsley/react-table/blob/1d8ffb18f7afc862db5d4f1da5cfc6781ed10553/src/hooks/useTable.js#L166-L169

    storybook version: ^5.1.9
    
    react-table version: ^7.0.0-rf.15
    
    0 回复  |  直到 5 年前
        1
  •  2
  •   kdizzle    5 年前

    好吧,过了一段时间,我想出来了。主要是数据和变量范围的问题。

    最初,我是这么做的

    import dummyData from './mockData'
    
    table.addDecorator(withKnobs).add('Table', () =>
      React.createElement(() => {
        return (
          <Table
            columns={dummyData.columns}
            data={dummyData.data}
          />
        )
      })
    )
    

    然而, dummyData 在内部未定义 React.createElement

    table.addDecorator(withKnobs).add('NextTable', () =>
      React.createElement(() => {
        return (
          <MockTableComponent />
        )
      })
    )
    

    其中模拟数据和模拟列在 MockTableComponent <Table />

    推荐文章