前提・実現したいこと
Reactでreact-router-domを用いて,ShopCard.jsからDetails.jsに値を受け渡ししたいです.
以下リンクを参考にコードを書きましたが,Details.jsのpropsに値が受け渡されません.
どなたか,詳しい方いいらっしゃいましたら教えていただけると幸いです.
発生している問題・エラーメッセージ
デベロッパーツールでprops確認すると以下が帰ってきます.
Object [[Prototype]]: Object constructor: ƒ Object() hasOwnProperty: ƒ hasOwnProperty() isPrototypeOf: ƒ isPrototypeOf() propertyIsEnumerable: ƒ propertyIsEnumerable() toLocaleString: ƒ toLocaleString() toString: ƒ toString() valueOf: ƒ valueOf() __defineGetter__: ƒ __defineGetter__() __defineSetter__: ƒ __defineSetter__() __lookupGetter__: ƒ __lookupGetter__() __lookupSetter__: ƒ __lookupSetter__() __proto__: (...) get __proto__: ƒ __proto__() set __proto__: ƒ __proto__()
該当のソースコード
ShopCard.js
1import React, { useState, useEffect, Component } from 'react' 2import { Link } from "react-router-dom"; 3import { withRouter } from "react-router-dom" 4 5 6export const ShopCard = (props) => { 7 8 const [state, setState] = useState("") 9 10 const handleChange = (e) => { 11 setState(() => "test") 12 } 13 14 const handleClick = () => { 15 props.history.push({ 16 pathname: "/details", 17 state: { text: setState("setState") } 18 }); 19 } 20 21 return ( 22 <> 23 <input type='text' value="test-val" onChange={handleChange}></input> 24 <button onClick={handleClick}>????画面遷移????</button> 25 </div> 26 </> 27 ) 28} 29export default withRouter(ShopCard)
Details.js
1import React, { useState, useEffect } from 'react' 2import Header from '../modules/Header' 3import Footer from '../modules/Footer' 4import { Link } from "react-router-dom"; 5 6 7const Details = (props) => { 8 console.log(props) 9 10 return ( 11 <> 12 <Header /> 13 14 <div> 15 <p>画面遷移先のページ</p> 16 <p> { props }</p> 17 </div> 18 19 <Footer /> 20 </> 21 ) 22} 23 24export default Details
補足情報(FW/ツールのバージョンなど)
react-router-domのv5使用してます.
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。