从mobx-react导入观察者会导致“Uncaught TypeError:超级expression式必须为null或函数,而不是未定义”

我正在使用rails-browserify与我的rails项目来编译reactJS应用程序。

我的节点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:超级expression式必须为null或函数,而不是未定义的

这对于我导入的任何其他库都不会发生。 reactmobxreact-dom所有import罚款。 让我知道你是否需要任何其他细节。 任何帮助表示赞赏。 我真的很难过

有问题的模块是这样的。 我还没有使用组件中的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 = {...} } } 

好的,我没有解决这个问题,但我现在想出了一个解决方法。

我把观察者导入移动到两步法,babelify似乎更好。 我变了

 import { observer } from 'mobx-react'; 

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

一切似乎现在正常工作。 这个问题似乎与babelify,以及它是如何翻译与图书馆的import。

Interesting Posts