반응 앱에서 '가져 오기 시도 오류 :'수신


117

React 앱을 실행하려고 할 때 다음 오류가 발생합니다.

./src/components/App/App.js
Attempted import error : 'combineReducers'is
not export from '../../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
라는 이름의 수출에서 기본 내보내기 차별화 주셔서 감사합니다
프랜시스 베이컨을

불행히도 차이점 분석에 대한 블로그 게시물이 깨졌습니다.
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.