Otrzymuję komunikat „Błąd próby importu:” w aplikacji Reag


117

Otrzymuję następujący błąd podczas próby uruchomienia mojej aplikacji React:

./src/components/App/App.js
Błąd podczas próby importu: „CombinedReducers”
nie jest eksportowany z „../../store/reducers/”.

Oto jak eksportuję combineReducers:

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

export default combineReducers({
    userReducers,
    articleReducers
});

a oto jak importuję to w App.js:

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

Co jest nie w porządku w sposobie eksportu combineReducers?

Odpowiedzi:


245

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

Powinien być

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

ponieważ jest to domyślny eksport, a nie nazwany eksport.

Jest to dobre zestawienie różnic między nimi tutaj .


1
dzięki za odróżnienie domyślnego eksportu od nazwanego eksportu
Francis Bacon,

Wpis na blogu o podziale różnic jest niestety uszkodzony.
sboisse

15

miałem ten sam problem, ale po prostu napisałem exportna górze i wymazałem domyślny na dole. Przewiń w dół i sprawdź komentarze.

import React, { Component } from "react";

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

4

Myślę, że się spóźniam, ale ta informacja może być przydatna dla każdego, kto się czegoś dowiedział, co może być proste, ale ważne. jeśli używasz eksportu bezpośrednio do funkcji, np

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

Uwaga podczas importowania musisz owinąć go w nawiasy klamrowe, tj import {addPost} from '../URL';

Ale podczas korzystania z domyślnego eksportu, tj

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

export default addPost,

Następnie możesz importować bez nawiasów klamrowych, tj import addPost from '../url';

export default addPost

Mam nadzieję, że pomoże to każdemu, kto pomylił się tak jak ja. 🙂


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.