我正在尝试在Storybook https://storybook.js.org/
中呈现react-table组件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)
在追究错误的根源之后,decorateColumnTree似乎收到了column参数的未定义定义。 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 :(得分:2)
好一会儿,我知道了。这主要是数据和变量作用域的问题。
最初,我是这样做的
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
的{{1}}中