質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

372閲覧

Reactのreducer周りのファイル読み込みに失敗する

nanase21

総合スコア144

Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/10/25 21:54

編集2020/10/26 01:21

エラーの解消方法を知りたい

最近、reactを勉強し始めた初学者です。
インポートかエクスポートがうまくできないので、どうすれば良いか知りたいです。

Failed to compile ./src/reducers/index.js Attempted import error: './userReducer' does not contain a default export (imported as 'userReducer').

react

1// src/reducers/index.js 2// src/reducers/userReducer.js 3import { combineReducers } from 'redux' 4import userReducer from './userReducer'; 5 6export default combineReducers({ 7 user: userReducer 8});

追記

js

1// src/reducers/postReducer.js 2 3import { FETCH_POSTS, NEW_POST, SING_IN, SING_OUT } from '../types'; 4import initialState from './initialState'; 5 6export default function posts(state = initialState, action) { 7 switch (action.type) { 8 case FETCH_POSTS: 9 return { 10 ...state, 11 items: action.payload 12 }; 13 case NEW_POST: 14 return { 15 ...state, 16 item: action.payload 17 }; 18 default: 19 return state; 20 } 21}

js

1// src/reducers/userReducer.js 2import { FETCH_POSTS, NEW_POST, SING_IN, SING_OUT } from '../types'; 3import initialState from './initialState'; 4 5export default function user(state = initialState, action) { 6 switch (action.type) { 7 case SING_IN: 8 return { 9 ...state, 10 ...action.payload 11 }; 12 case SING_OUT: 13 return { 14 ...state, 15 ...action.payload 16 }; 17 default: 18 return state; 19 } 20}

js

1// src/reducers/initialState.js 2 3const initialState = { 4 items: [], 5 item: {}, 6 user: { 7 isSignedIn: false, 8 firstName: "", 9 lastName: "", 10 userId: "", 11 address: { 12 zipCode: "", 13 stateName: "", 14 city: "", 15 line: "", 16 line2: "", 17 buidingName: "" 18 } 19 } 20}; 21 22export default initialState

肝心なファイルの詳細がないという指摘を受けたので、reducerのソースコードとファイルパスを追記させて頂きました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

恐らくuserReducer.js側でexport defaultをしていないのだと思います。
肝心のuseReducer.jsが提示されていないので、以下憶測ですが・・・

useReducer.js

1export const useReducer = ...

のような書き方をしている場合は

import { userReducer } from './useReducer'

に書き換える、もしくはuseReducer.js

useReducer.js

1const useReducer = ... 2export default useReducer;

のようにすればいけると思います。

投稿2020/10/25 23:24

nekoniki

総合スコア2409

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nanase21

2020/10/26 01:23

ご教示頂きありがとうございます。 ファイルの中身とファイルパスを追記させて頂きました。 追記したファイルのソースでは一応、自力でエラーは取り除けたのですがこれであっているかについての自信はないです... やりたいこととしては、reducerをコンテナー毎に分割しようとしています。
nekoniki

2020/10/26 04:19

追記ありがとうございます。 > 追記したファイルのソースでは一応、自力でエラーは取り除けたのですがこれであっているかについての自信はないです... > やりたいこととしては、reducerをコンテナー毎に分割しようとしています。 initialStateの構成に対応してreducerを分けるということですよね(userの他にitemsやitemに対応するreducerもあると推察します)。 この方式で問題ないかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問