質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

1回答

2484閲覧

React.jsでルーティングで切り替え表示させたいです。

masaru_free

総合スコア17

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2018/02/07 12:12

編集2018/02/09 06:36

ルーティングで表示させたいです。
ですが、
Cannot read property 'array' of undefined
とゆうエラーを吐いてしまいます。
内容をはくdomは<div id="content"></div>です。

実現したい内容は、Routeで設定しているpathに遷移したら、componentで設定している要素を吐く。といった内容です。

どなたか、ご存知な方おられませんでしょうか?
宜しくお願い致します。

js

1var React = require('react'); 2var ReactDOM = require('react-dom'); 3var createReactClass = require('create-react-class'); 4var ReactRouter = require('react-router'); 5var Route = ReactRouter.Route; 6var Link = ReactRouter.Link; 7var BrowserRouter = ReactRouter.BrowserRouter; 8var Route = ReactRouter.Route; 9var Link = ReactRouter.Link; 10 11var prologue = createReactClass({ 12 render: function(){ 13 return ( 14 <section> 15 <p>mmmmmmmm</p> 16 </section> 17 ); 18 } 19}); 20 21var prologuev2 = createReactClass({ 22 render: function(){ 23 return ( 24 <section> 25 <p>iiiiiiiii</p> 26 </section> 27 ); 28 } 29}); 30 31var App = createReactClass({ 32 render: function () { 33 return ( 34 <div> 35 <div> 36 { this.props.children } 37 </div> 38 <div> 39 <p><Link to="/">Dashboard1111</Link></p> 40 <p><Link to="a">Inbox2222</Link></p> 41 <p><Link to="b">CalendarRoute3333</Link></p> 42 </div> 43 </div> 44 ); 45 } 46}); 47 48ReactDOM.render(( 49 <BrowserRouter> 50 <Route path="/" component={App}> 51 <Route path="a" component={prologue}/> 52 <Route path="b" component={prologuev2}/> 53 </Route> 54 </BrowserRouter> 55),document.getElementById('content') 56); 57

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

createReactClass とか初めて見た…。 ES5縛りされてるんですか。

react-router はバージョンが変わる毎に別物になるのでお使いのバージョンを明記してください。

react-router ではなく react-router-dom を使ってください。

If you are writing an application that will run in the browser, you should instead install react-router-dom.

react-router/packages/react-router at master · ReactTraining/react-router

ご提示のコードに

js

1<Route path="/" component={App}> 2 <Route path="a" component={prologue}/> 3 <Route path="b" component={prologuev2}/> 4 </Route>

とありますが、少なくとも react-router-dom@4 で出来た記憶が無いんですがもし可能であればサンプルかなにかみたいです。

以下コードです。ES2015 で書いてます。適宜読み替えてください。

js

1import React from 'react'; 2import { Route, Link, BrowserRouter as Router } from 'react-router-dom'; 3 4const prologue = () => ( 5 <section> 6 <p>mmmmmmmm</p> 7 </section> 8); 9 10const prologuev2 = () => ( 11 <section> 12 <p>iiiiiiii</p> 13 </section> 14); 15 16const Home = () => ( 17 <div> 18 <p><Link to="/">Dashboard1111</Link></p> 19 <p><Link to="a">Inbox2222</Link></p> 20 <p><Link to="b">CalendarRoute3333</Link></p> 21 </div> 22); 23 24const App = () => ( 25 <Router> 26 <div> 27 <Route exact path="/" component={Home} /> 28 <Route path="/a" component={prologue} /> 29 <Route path="/b" component={prologuev2} /> 30 </div> 31 </Router> 32); 33 34ReactDOM.render( 35 <App />, 36 document.getElementById('content'), 37); 38

投稿2018/05/17 16:03

og24715

総合スコア832

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問