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.