11

我想将一个 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 创建的。这就是为什么我需要storeaddDecorator函数中提供 a 。

不幸的是,在configureStore函数中,reducer 之一具有全局数据的依赖关系window.GLOBAL

在故事书中,我会看到以下错误:

GLOBAL is not defined
ReferenceError: GLOBAL is not defined
    at initGlobalState (http://localhost:9010/static/preview.bundle.js:86625:3)

如何在故事书中注入或模拟此类全局数据?

4

2 回答 2

19

我可以preview-head.html在目录中添加一个文件__stories__

在里面我有这样的javascript:

<script>
  var data = { };
  window.GLOBAL = {
    data: data
  };  
 </script>

文档

于 2018-06-25T03:39:52.273 回答
3

window您尝试访问的是 iframe 预览。尝试从 iframe 外部访问窗口,即 Storybook window

window.parent.window.GLOBAL

于 2020-04-30T17:57:15.247 回答