私はElectronで構築されたReactアプリケーションを作成しましたが、react-router
を実装しようとしています。Electron - React.createElement:タイプが無効です。エラー
bundle.js:1426警告:多くの研究や頭痛の数時間後、私は電子クロームコンソールが私を提示しているこのエラーを修正することができませんReact.createElement:タイプが無効です - 文字列が期待されます(組み込みコンポーネントの場合)またはクラス/関数(コンポジットコンポーネントの場合)ですが、未定義です。コンポーネントが定義されているファイルからコンポーネントをエクスポートするのを忘れているか、デフォルトと名前付きのインポートが混在している可能性があります。
なしreact-router
他のReactアプリケーションと同じようにコンポーネントをレンダリングすることができます。ここに私のコードは次のとおりです。
index.js
import React, { Component } from 'react';
import { render } from 'react-dom';
import { Router, Route, IndexRoute } from 'react-router';
import createHashHistory from 'history/createHashHistory';
import App from './containers/App';
import Login from './containers/Login';
const routes = (
<Route path="/" component={App}>
<IndexRoute component={Login} />
</Route>
);
const MOUNT_NODE = document.getElementById('app');
render(
<Router history={createHashHistory()} routes={routes} />,
MOUNT_NODE
);
コンテナ/ App.js
import React, { Component, PropTypes } from 'react';
export default class AppContainer extends Component {
constructor(props) {
super(props);
this.props.children = PropTypes.element.isRequired;
}
render() {
return (
<div>
{this.props.children}
</div>
);
}
}
コンテナ/ Login.js
import React, { Component } from 'react';
import Login from '../components/Login';
export default class LoginContainer extends Component {
render() {
return (
<Login />
);
}
}
のコンポーネント/ Login.js
import React, { Component } from 'react';
export default class Login extends Component {
render() {
return (
<div>
<h1>Login Component</h1>
</div>
);
}
}
引用されたエラーを削除する方法上の任意のアイデア?前もって感謝します。
これは私の問題を解決しませんでした。私はまたreact- ルータの異なるバージョンを変更しました。どちらも役に立たなかった – szier
あなたはどのバージョンのリアクタを使用していますか? – Ushka