我在使用storybook来模拟我的应用程序页面。我有一个想法,即将storybook与一个上下文一起包装以获取模拟数据。当我运行真实的应用程序时,我可以给它另一个上下文,并从API获取数据。
如何使用useContext实现这一点?我的问题是useContext要求我导入一个上下文,这个上下文需要轻松更换为另一个上下文。因为模拟上下文和实际上下文位于不同的文件夹中,导入路径将不同。
在我的storybook配置中:
在我的组件中:
如何使用useContext实现这一点?我的问题是useContext要求我导入一个上下文,这个上下文需要轻松更换为另一个上下文。因为模拟上下文和实际上下文位于不同的文件夹中,导入路径将不同。
在我的storybook配置中:
export const Context = React.createContext();
addDecorator(story => (
<Context.Provider value="hello!">
{story()}
</Context.Provider>
))
在我的组件中:
import React, {useContext} from 'react;
import { Context } from 'path/to/context';
const value = useContext(Context)
Context
,但在真实应用程序中,你需要使用一个更适合你的应用程序的value
与Provider
。 - Tholle<Context.Provider value="hello!">
提供一个提供者,在应用程序中则使用<Context.Provider value="something else!">
。 - Tholle