reactjs - 如何在故事书中注入(inject)窗口变量?

标签 reactjs redux 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)

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

最佳答案

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

里面有像这样的javascript:

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

Documentation

关于reactjs - 如何在故事书中注入(inject)窗口变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50968590/

相关文章:

javascript - React/JS 过滤器的问题

reactjs - 在react-router 2.0.0中使用自定义历史记录时出现问题

reactjs - 使用 {react-select} 时无法读取未定义的属性 'name'

reactjs - createAsyncThunk 并使用 redux-toolkit 编写 reducer 登录

reactjs - React Prop 中的索引签名

javascript - 使用 WebSockets 的 react 原生应用程序中的架构

react-native - 使用 redux 进行 native react : Can we have initial payload for actions

javascript - @storybook/angular 无法在故事索引上加载 scss 文件

storybook - 在故事书 6 中禁用每个故事的 Canvas

vue.js - Storybook 不会在 Vue 项目的组件中加载 SVG