2016-08-11 9 views
1

reactJS 응용 프로그램을 컴파일하기 위해 내 레일 프로젝트에 rails-browserify을 사용하고 있습니다.mobx-react에서 observer를 가져 오면 "Uncaught TypeError : 슈퍼식이 null이거나 정의되지 않은 함수 여야합니다"

내 노드 package.json 파일은 다음과 같다 :

{ 
    "dependencies": { 
    "babel-core": "^6.13.2", 
    "babel-loader": "^6.2.4", 
    "babel-plugin-transform-decorators-legacy": "^1.3.4", 
    "babel-preset-es2015": "^6.13.2", 
    "babel-preset-react": "^6.11.1", 
    "babel-preset-stage-1": "^6.13.0", 
    "babel-preset-stage-2": "^6.13.0", 
    "babelify": "^7.3.0", 
    "browserify": "^13.1.0", 
    "browserify-incremental": "^3.1.1", 
    "mobx": "^2.4.2", 
    "mobx-react": "^3.5.4", 
    "react": "^15.3.0", 
    "react-dom": "^15.3.0", 
    "react-router": "^2.6.1", 
    "webpack": "^1.13.1" 
    } 
} 

을 그러나, 나는 import { observer } from 'mobx-react', 은 내가이

Uncaught TypeError: Super expression must either be null or a function, not undefined

이 내가 가져 다른 라이브러리 발생하지 않습니다 얻을 때마다 . react, mobx, react-dom 모두 괜찮습니다. 다른 세부 정보가 필요한 경우 알려주십시오. 어떤 도움을 주셔서 감사합니다. 나는 정말로 여기에서 곤란하다.

문제의 모듈은 그렇게 보입니다. 아직 컴포넌트에서 mobx-react를 사용하지 않고 가져 왔습니다. 오류를 유발하는 것은 import {observer} 행입니다.

import React, { Component } from 'react'; 
import { observer } from "mobx-react"; 

export default class OnboardingHeader extends Component { 
    constructor(props) { 
    super(props); 
    this.state = {...} 
    } 
} 
+0

React 구성 요소에서 옵저버를 어떻게 사용하고 있습니까? 당신은 어떻게 React를 가져오고 있습니까? – Tholle

+1

원래 게시물을 업데이트했습니다. 그것들은 모두 npm을 통해 가져 왔고 옵저버는 아직 구현되지 않았으며 가져 오기 만했습니다. @ observer 데코레이터를 추가하더라도 문제는 여전히 지속됩니다. – codabrink

+0

그래서 mobx-react에서 가져 오기 명령문을 제거하면 작동합니까? 그게 이상합니다. – Tholle

답변

2

그래, 문제는 해결되지 않았지만 지금 해결 방법을 찾았습니다.

저는 관찰자 가져 오기를 2 단계 방법으로 옮겼습니다. 그리고 babelify가 더 좋아 보이는 것 같습니다. 나는

import mobxReact from 'mobx-react'; 
const { observer } = mobxReact; 

모든 것이 지금 잘 작동하는 것 같다

import { observer } from 'mobx-react'; 

을 변경했습니다. 이 문제는 babelify와 함께하고 가져 오기를 도서관과 어떻게 번역하고 있는지에 대한 것 같습니다.

+0

여전히 문제가 계속되는 경우 github 저장소에서 문제를 열어보세요. https://github.com/mobxjs/mobx-react – mweststrate