1

rails プロジェクトでrails-browserifyを使用して、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'、私は

キャッチされていない TypeError: スーパー式は、未定義ではなく、null または関数のいずれかでなければなりません

これは、インポートした他のライブラリでは発生しません。reactmobxreact-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 = {...}
  }
}
4

1 に答える 1

2

さて、私は問題を解決しませんでしたが、今のところ回避策を見つけました。

オブザーバーのインポートを 2 段階の方法に移動しましたが、babelify はそのほうが気に入っているようです。私が変更され

import { observer } from 'mobx-react';

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

今はすべてうまくいっているようです。問題は、babelify と、それがライブラリでインポートをどのように変換しているかにあるようです。

于 2016-08-11T19:26:34.617 に答える