1
リアルーターを実装しているときにこのエラーが発生しました:要素タイプが無効です:文字列またはクラス/関数(コンポジットコンポーネント用)が必要ですがオブジェクト:
要素タイプが無効です:文字列(組み込みコンポーネント用)またはクラス/関数(複合コンポーネント用)、got:オブジェクトが必要です。
1)
"use strict"; var React = require('react'); var createReactClass = require('create-react-class'); var ReactDOM = require('react-dom'); var Router = require('react-router'); var routes = require('./routes'); ReactDOM.render(<Router routes={routes}></Router>,document.getElementById('app'))
2)
var React = require('react'); var Router = require('react-router'); var DefaultRoute = Router.DefaultRoute; var Route = Router.Route; var routes = ( <Route name="app" path="/" handler={require('./components/app')}> <DefaultRoute handler={require('./components/homePage')} /> <Route name="authors" handler={require('./components/authors/authorPage')}/> <Route name="about" handler={require('./components/about/aboutPage')}/> </Route> ); module.exports = routes;
3)
をapp.js routes.js main.js - ここ
はコードの私の部分であります
var React = require('react');
var ReactDOM = require('react-dom');
var createReactClass = require('create-react-class');
var Header = require('./common/header');
var RouteHandler = require('react-router').RouteHandler;
var App = createReactClass({
render:function(){
return (
<div>
<Header/>
<RouteHandler/>
</div>
);
}
});
module.exports = App;
バージョン - "react-router": "^ 4.2.0"
あなたの 'main.js'ファイルは、空のルータだけをレンダリングするように見えます(ルートは使用されません)。また、 'routes.js'はv2 + APIを使用しているようですが、使用しているv4 + APIには大きな変更がありました。また、個々のファイル/モジュールを扱う際の生活が少し楽になるため、ES6にアップグレードすることもできます。 – tgallacher