反応アプリで「インポート試行エラー:」を受信する


116

Reactアプリを実行しようとすると、次のエラーが発生します。

./src/components/App/App.js
インポートエラーの試行:「combineReducers」
は「../../store/reducers/」からエクスポートされません。

これが私がエクスポートする方法ですcombineReducers

import { combineReducers } from 'redux';
import userReducers from './userReducers';
import articleReducers from './articleReducers';

export default combineReducers({
    userReducers,
    articleReducers
});

これが私がそれをインポートする方法ですApp.js

import { combineReducers } from '../../store/reducers';

エクスポート方法の何が問題になっていcombineReducersますか?

回答:


241

import { combineReducers } from '../../store/reducers';

する必要があります

import combineReducers from '../../store/reducers';

これはデフォルトのエクスポートであり、名前付きのエクスポートではないためです。

ここに2つの違いの良い内訳があります


1
デフォルトのエクスポートを名前付きエクスポートから区別していただきありがとう
FrancisBacon20年

残念ながら、違いの内訳に関するブログ投稿は壊れています。
sboisse

15

同じ問題が発生しましたがexport、上に入力して、下にあるデフォルトの問題を消去しました。下にスクロールしてコメントを確認します。

import React, { Component } from "react";

export class Counter extends Component { // type this  
export default Counter; // this is eliminated  

4

私は遅れていると思いますが、この情報は私が何かを見つけた人にとって役立つかもしれません。それは単純ですが重要かもしれません。関数で直接エクスポートを使用する場合、つまり

export const addPost = (id) =>{
  ...
 }

インポートするときは、中括弧で囲む必要があることに注意してください。 import {addPost} from '../URL';

ただし、エクスポートのデフォルトを使用する場合、つまり

const addPost = (id) =>{
  ...
 }

export default addPost

次に、中括弧なしでインポートできます。 import addPost from '../url';

export default addPost

これが私として混乱した人の助けになることを願っています。🙂


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.