React uygulamasında "İçe aktarma girişimi hatası:" alınıyor


110

React uygulamamı çalıştırmaya çalışırken aşağıdaki hatayı alıyorum:

./src/components/App/App.js
Denenen içe aktarma hatası: "birleştirmeReducers"
, "../../store/reducers/" adresinden dışa aktarılmaz.

İşte nasıl dışa aktarıyorum combineReducers:

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

export default combineReducers({
    userReducers,
    articleReducers
});

ve işte bunu nasıl içe aktarıyorum App.js:

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

Dışa aktarma şeklimde yanlış olan ne combineReducers?

Yanıtlar:


222

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

olmalı

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

varsayılan bir dışa aktarma olduğundan, adlandırılmış bir dışa aktarma değil.

Burada ikisi arasındaki farkların iyi bir dökümü var .


1
Varsayılan ihracatı adlandırılmış ihracattan ayırdığınız için teşekkür ederiz
— Francis Bacon

15

Ben de aynı sorunu yaşadım, ancak sadece exportüste yazdım ve alttaki varsayılanı sildim. Aşağı kaydırın ve yorumları kontrol edin.

import React, { Component } from "react";

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

4

Sanırım geç geliyorum, ancak bu bilgi, basit ama önemli olabilecek bir şey bulduğum herkes için yararlı olabilir. doğrudan bir işlevde dışa aktarımı kullanırsanız, ör.

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

İçe aktarırken, süslü parantez içine almanız gerektiğini unutmayın. import {addPost} from '../URL';

Ancak dışa aktarma varsayılanını kullanırken ie

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

export default addPost,

Ardından kaşlı ayraçlar olmadan içe aktarabilirsiniz, yani import addPost from '../url';

export default addPost

Umarım bu benimle kafası karışan herkese yardımcı olur. 🙂


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.