javascript - Mobx/Storybook:需要配置 Storybook 以使用 Mobx-State-Tree
问题描述
当我Cannot read property 'data' of undefined
尝试在 StoryBook 中查看组件时,超过 80% 的组件出现错误。
我想我需要模拟故事中的数据或将相应的商店传递给它,但我不确定。我联系了Storybook Discord频道,有人建议将它们包装在 a 中<Provider>
,但我不知道如何在 Storybook 中实现这一点。
我已经为我的组件和下面的相应故事文件创建了一个基本大纲。对此的任何帮助或建议将不胜感激!
Component
import React, { Fragment, useEffect } from 'react'
import { observer } from 'mobx-react-lite'
import { RootStoreModel } from '../../stores/root-store'
import useInject from '../../hooks/useInject'
const mapStore = ({ componentSummary, customer }: RootStoreModel) => ({
item1: parent.data.item1,
item2: parent.data.item2
item3: parent.data.item3
})
type Props = {
idx: number;
title: string;
toggleActive: (idx: number, newState: false) => void;
}
const MyComponent = (props: Props): JSX.Element => {
const {
item1,
item2,
item3
} = useInject(mapStore)
const { idx, title, toggleActive } = props
return (
<div>Content</div>
)
}
export default observer(MyComponent)
Story file for component
import React from 'react';
import { storiesOf } from '@storybook/react';
import MyComponent from './myComponent';
const options = ['done', 'error', 'pending'];
storiesOf('My Component', module)
.add(
'Default', () =>
<MyComponent idx={0} title="ComponentNumeroUno" toggleActive={() => null}/>,
);
解决方案
推荐阅读
- optimization - 警告:预算:初始超出最大预算
- java - 在字符串中查找不存在的字母
- c# - HttpClient 完成后如何处理?
- javascript - 在 express 中执行数组的函数
- java - 创建java识别的证书链的过程
- reactjs - 如何在 React 上使用 JWT 验证每条受保护的路由
- html - 如何更改使用 pandoc 创建的 html 文档中提取的图像位置?
- mongodb - 本地 MongoDB 服务器有速率限制吗?
- flutter - 列中的 ElevatedButton 和 Switch,呈现问题
- javascript - 如何收集用户 ID + 检索相应的令牌 + 通过 Firebase Cloud Function (JS) 发送推送通知