ได้รับ“ ข้อผิดพลาดในการนำเข้าที่พยายาม:” ในแอปตอบกลับ


117

ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามเรียกใช้แอป React ของฉัน:

./src/components/App/App.js
ข้อผิดพลาดในการนำเข้าที่พยายาม: 'combinationReducers'
ไม่ได้ถูกส่งออกจาก '../../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?

คำตอบ:


245

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

ควรจะเป็น

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

เนื่องจากเป็นการส่งออกเริ่มต้นไม่ใช่การส่งออกตามชื่อ

มีรายละเอียดที่ดีของความแตกต่างระหว่างทั้งสองเป็นที่นี่


1
ขอบคุณสำหรับความแตกต่างของการส่งออกเริ่มต้นจากการส่งออกที่ระบุชื่อ
Francis Bacon

บล็อกโพสต์เกี่ยวกับรายละเอียดความแตกต่างเสียไปอย่างน่าเสียดาย
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';

แต่เมื่อใช้ export default คือ

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

export default addPost,

จากนั้นคุณสามารถนำเข้าได้โดยไม่ต้องใช้วงเล็บปีกกาเช่น import addPost from '../url';

export default addPost

ฉันหวังว่านี่จะช่วยทุกคนที่สับสนเหมือนฉัน 🙂


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.