🔥
既存プロジェクトにStorybookを導入した際に遭遇したエラーまとめ
アクセストークンが取得できない時のエラー
解決方法:
React Contextをコンポーネント内で使用している場合に、使用しているProviderを参照できずにエラーになっているのでstorybookでも参照できるようにする必要があり、preview.jsにdecoratorを追加すれば解消する。
.storybook/preview.js
decorators: [
(Story) => (
<>
<PhotopeerContext.Provider value={{currentUser: null, hasAccessToken: () => {return true}}}>
<UserLikedPostsContext.Provider value={{likedPosts: [], addLikedPosts: () => {}, removeLikedPosts: () => {}, toggleLikeInProgress: false}}>
<Story />
</UserLikedPostsContext.Provider>
</PhotopeerContext.Provider>
</>
),
],
NavLinkがある場合のエラー
解決方法:
storybook側でもNavLinkが機能するようにする必要があり、preview.jsにBrowserRouterを追加すれば解決する。
.storybook/preview.js
decorators: [
(Story) => (
<>
<BrowserRouter>
<Story />
</BrowserRouter>
</>
),
],
コンポーネントの定義が適切でない場合のエラー
解決方法:
エラーの記述にもあるようにCSF(https://storybook.js.org/docs/api/csf)のフォーマットに合わせる必要があり、functionの定義の仕方を変えることで解消できる。
src/component
function CardNote(props) {}
↓
const CardNote = ({ props }) => {}
Discussion