1. ホーム
  2. JavaScript

スーパー式は null か関数でなければならず、未定義ではない エラーの報告および解決方法

2022-02-16 05:37:04

Reactのプロジェクトで上記のエラーメッセージに遭遇しました。

Super expression は null か関数でなければならず、undefined ではありません。

この解析のための情報を調べます。

// The original code

'use strict';

import Realm from 'realm';

class Todo extends Realm.Object {}
Todo.schema = {
    name: 'Todo',
    properties: {
        done: {type: 'bool', default: false},
        text: 'string',
    },
};

class TodoList extends Realm.Object {}
TodoList.schema = {
    name: 'TodoList',
    properties: {
        name: 'string',
        items: { type: 'list', objectType: 'Todo'},
    },
};

export default new Realm({schema: [Todo, TodoList]});

これがオリジナルのJSコード(Reactフレームワーク使用)

これにはいくつかの理由が考えられます。

1. React.ComponentやReact.Comonent...ではなく、React.Componentが正しく書かれていることを確認する。(これは個人的な問題ですが、componentのスペルが間違っています) 

2, Reactのバージョンを確認し、0.13.x以上にアップデートされていることを確認する : これはまもなくリリースされる最新バージョン0.13.0で修正されています。パッケージ.jsonでバージョンを0.13.0-rcに設定すれば、現在リリース候補を試すことができます。

3. モジュール間の循環的な依存関係のチェック

4. インポートされたライブラリが正しいかどうかの確認

react' から React,{Component} をインポートします。

Componentはreact-routerからではなく、ネイティブのReactから持ってくる必要があります。