2016-11-23 7 views
2

내가이작동이 필요하지만

export var toggleTodo = (id) => { 
    return { 
    type: 'TOGGLE_TODO', 
    id 
    } 
} 

같은 조치를 수출하는 actions.js 파일이 작동하지으로 가져올하지만 난 그것을 ES6 가져 오기를 사용하여 가져올 때 오류

Uncaught TypeError: Cannot read property 'toggleTodo' of undefined 

얻을 수 있지만, 일반적인 js를 사용하도록 요구합니다. 누군가 나에게 설명 할 수 있을까? 왜 이런 일이 일어나는가, 나는이 두 가지가 똑같은 것을 읽는다는 것을 의미한다. 뭔가 다른 것처럼 보인다.

// var actions = require('actions') working 
// dispatch(actions.toggleTodo(id)); 

import actions from 'actions' //not working 
dispatch(actions.toggleTodo(id)); 
+0

[tag : requirejs]로 태그 지정했습니다. 실제로 사용하고 있습니까? (RequireJS는 * A * 특정 제품입니다. "자바 스크립트 require''"에 대한 일반적인 속기. 그것은 Node.js.가 제공하는'require' 참조하지 않습니다되지 않습니다)하지 않으면 그건 그냥이기 때문에, 그 태그를 제거하십시오 혼란 스럽다. – Louis

답변

6

import에는 여러 가지 다른 형태가 있습니다. 당신이

import actions from 'actions' //not working 

을 사용하고있는 사람은 actions 모듈에서 default export를 가져 오기위한 것입니다. complete list in MDN javascript reference을 볼 수 있습니다.

action.js 모듈에 기본 내보내기가없고 아마도 actions이 정의되지 않은 상태로 작동하지 않아 작동하지 않습니다.

dispatch(actions.toggleTodo(id)); 

또는 같은 이름을 가져 오기를 사용할 수 있습니다 : 당신이 actions의 속성으로 보낸 모든 값에 액세스 할 수 있습니다

import * as actions from 'actions'; 

:

require 호에 해당 양식이 하나입니다 이 :

import {toggleTodo} from 'actions'; 

toggleTodo을 직접 사용할 수 있습니다.

dispatch(toggleTodo(id));