如何在故事书中注入 window 变量?
How to inject a window variable in a storybook?
我想将 React 组件(称为 ApplicationForm
)添加到 storybook。
故事书是这样写的:
import { configureStore } from '../store';
const store = configureStore();
storiesOf('application from', module)
.addDecorator(story => <Provider store={store}>{story()} </Provider>)
.add('all', () => (
<ApplicationForm />
));
ApplicationForm
是用reduxForm创建的。这就是为什么我需要在 addDecorator
函数中提供一个 store
。
不幸的是,在 configureStore
函数中,其中一个 reducer 依赖于全局数据 window.GLOBAL
。
在故事书中我会看到以下错误:
GLOBAL is not defined
ReferenceError: GLOBAL is not defined
at initGlobalState (http://localhost:9010/static/preview.bundle.js:86625:3)
如何在故事书中注入或模拟此类全局数据?
我可以在 __stories__
目录中添加一个 preview-head.html
文件。
里面我有 javascript 这样的:
<script>
var data = { };
window.GLOBAL = {
data: data
};
</script>
您尝试访问的 window
是 iframe 预览。
尝试从 iframe 外部访问 window,Storybook window
。
window.parent.window.GLOBAL
我想将 React 组件(称为 ApplicationForm
)添加到 storybook。
故事书是这样写的:
import { configureStore } from '../store';
const store = configureStore();
storiesOf('application from', module)
.addDecorator(story => <Provider store={store}>{story()} </Provider>)
.add('all', () => (
<ApplicationForm />
));
ApplicationForm
是用reduxForm创建的。这就是为什么我需要在 addDecorator
函数中提供一个 store
。
不幸的是,在 configureStore
函数中,其中一个 reducer 依赖于全局数据 window.GLOBAL
。
在故事书中我会看到以下错误:
GLOBAL is not defined
ReferenceError: GLOBAL is not defined
at initGlobalState (http://localhost:9010/static/preview.bundle.js:86625:3)
如何在故事书中注入或模拟此类全局数据?
我可以在 __stories__
目录中添加一个 preview-head.html
文件。
里面我有 javascript 这样的:
<script>
var data = { };
window.GLOBAL = {
data: data
};
</script>
您尝试访问的 window
是 iframe 预览。
尝试从 iframe 外部访问 window,Storybook window
。
window.parent.window.GLOBAL