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

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

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

Routerは、異なるネットワーク同士を相互に接続するための通信機器。インターネットでのデータを自動的に振り分け、一つのインターネット回線を複数のコンピュータで使用することが可能です。DHCPによりIPアドレスを自動的に割振りすることもできます。

JavaScript

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

React.js

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

Q&A

解決済

1回答

2297閲覧

react-router-domで遷移先コンポーネントに値を渡したい

omyu

総合スコア22

Router

Routerは、異なるネットワーク同士を相互に接続するための通信機器。インターネットでのデータを自動的に振り分け、一つのインターネット回線を複数のコンピュータで使用することが可能です。DHCPによりIPアドレスを自動的に割振りすることもできます。

JavaScript

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

React.js

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

0グッド

0クリップ

投稿2020/08/26 09:58

reactで画面遷移先に値を送りたいと思い、リンク内容この記事を参考にしていたのですが、イメージ説明
画像のようなエラーが出てしまいます。エラーを回避し、画面遷移先に値を渡す方法をご教授いただければ幸いです。

環境は
windows10

バージョンは
react@16.13.1
react-dom@16.13.1
react-router-dom@5.2.0
react-scripts@3.4.3
です。

javascript

1import React from 'react'; 2import { BrowserRouter, Route } from 'react-router-dom'; 3 4import First from './first'; 5import Second from './second'; 6 7 8 9class App extends React.Component { 10 constructor(props) { 11 super(props); 12 } 13 14 render() { 15 return( 16 <BrowserRouter> 17 <Route exact path="/" render={() => <First />} /> 18 <Route path="/second" render={() => <Second />} /> 19 </BrowserRouter> 20 ); 21 } 22} 23 24 25export default App; 26

javascript

1import React, { Component } from 'react'; 2import { withRouter } from 'react-router-dom'; 3 4class First extends Component{ 5 constructor(props) { 6 super(props); 7 this.handleChange1 = this.handleChange1.bind(this) 8 this.handleChange2 = this.handleChange2.bind(this) 9 this.handleClick = this.handleClick.bind(this) 10 this.state = { 11 text1: "", 12 text2: "" 13 } 14 } 15 16 handleChange1(e){ 17 this.setState({ 18 text1: e.target.value 19 }) 20 } 21 22 handleChange2(e){ 23 this.setState({ 24 text2: e.target.value 25 }) 26 } 27 28 handleClick() { 29 this.props.history.push({ 30 pathname: '/second', 31 state: { 32 text1: this.state.text1, 33 text2: this.state.text2 34 } 35 }); 36 } 37 38 render(){ 39 return( 40 <div> 41 最初のページ 42 <br/> 43 <input type='text' value={this.state.text1} onChange={ (e) => this.handleChange1(e) }></input> 44 <p>{this.state.text1}</p> 45 <input type='text' value={this.state.text2} onChange={ (e) => this.handleChange2(e) }></input> 46 <p>{this.state.text2}</p> 47 <button onClick={this.handleClick}>内容確認</button> 48 </div> 49 ) 50 } 51} 52 53 54 55export default withRouter(First);

javascript

1import React, { Component } from 'react'; 2 3export default class Second extends Component { 4 render() { 5 return ( 6 <div> 7 <p>画面遷移先のページ</p> 8 <p>{this.props.location.state.text1}</p> 9 <p>{this.props.location.state.text2}</p> 10 </div> 11 ); 12 } 13}

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは

以下のように、 SecondwithRouter してからexportするように修正してみるといかがでしょうか?

diff

1 import React, { Component } from 'react'; 2+ import { withRouter } from 'react-router-dom'; 3 4- export default class Second extends Component { 5+ class Second extends Component { 6 render() { 7 return ( 8 <div> 9 <p>画面遷移先のページ</p> 10 <p>{this.props.location.state.text1}</p> 11 <p>{this.props.location.state.text2}</p> 12 </div> 13 ); 14 } 15 } 16 17+ export default withRouter(Second);

投稿2020/08/26 10:14

jun68ykt

総合スコア9058

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

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

omyu

2020/08/26 10:33

ご回答ありがとうございます。 教えていただいたとおりに修正するとエラーなく値を渡すことが出来ました。 本当にありがとうございます。
jun68ykt

2020/08/26 10:35

どういたしまして。解決したようで、よかったです????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問