に反応:matchid:は、私はこのコードを持っているすべての私のルートレンダリングどこファイル私のApp.jsではルータのparams返す空のオブジェクト
import LiveMatch from "../containers/LiveMatch";
const routes = [
//removed other routes for simplicity of post
{
path: "/livematch/:matchid", <--- here is the param I want
exact: true,
component:() => <LiveMatch />
}
];
class App extends Component {
render() {
return (
<div>
<BrowserRouter>
<div>
{routes.map((route, index) =>
<Route
key={index}
path={route.path}
exact={route.exact}
component={route.component}
/>
)}
</div>
</BrowserRouter>
</div>
);
}
}
を今、私はコンポーネントを設定していることを、私はプリントアウトしてみてください私は空のオブジェクトを取得し続けます。
class LiveMatch extends Component {
constructor(props) {
super(props)
this.state = {...}
console.log(this.props) // returns { }
}
componentDidMount() {
console.log(this.props) // returns { }
}
}
コンストラクタでプロップにアクセスしようとするか、またはプロップをマウントした後でも、常にプロンプトは空です。私が検索した他の投稿からは、答えはthis.props.params.matchid
またはthis.props.match.params.matchid
のように単純なものでなければなりません。
質問::matchid paramへのアクセス方法を教えてください。間違って何かしていますか?
あなたは素晴らしいです
はこのようにそれを書きます!これは動作します:)感謝! – Phillip
うれしい、それはあなたの問題を解決:) –