現在、React.jsを探しています& Reduxと反応ルータで遊んでいました。私の質問です:他のコンポーネントからURLパラメータにアクセスする方法はありますか?例えば他のコンポーネントからのルータへのアクセスパラメタ
:
Iは、(props.match.params.bar
介して):bar
PARAMを表示Foo
成分を持っているが、私はまた、ヘッダコンポーネントで:bar
の値を表示します。 ReactRouterDOM.withRouter
でprops.match
にアクセスできます。問題は、これがFoo
コンポーネント(これは親ルート '/'に関する情報を含んでいます)と同じではないということです。だから、私はHeader
コンポーネントの価値をどうやって得るのでしょうか、正しい軌道にいるのでしょうか?事前に
おかげ
const Foo = (props) => {
return (<div> <h1> Foo {props.match.params.bar} </h1> </div>);
};
const App = (props) => {
return (
<div>
<HeaderWrapper />
<h1> Hello App </h1>
<p><ReactRouterDOM.Link to='/foo/bar'>Foo Bar</ReactRouterDOM.Link></p>
<hr />
<ReactRouterDOM.Route path='/foo/:bar' component={Foo} />
</div>);
};
// Header
const Header = (props) => {
console.log(props);
return (<header> <small>You are here: {}</small> </header>);
};
const HeaderWrapper = ReactRouterDOM.withRouter(Header);
// Router
ReactDOM.render((
<ReactRouterDOM.MemoryRouter>
<ReactRouterDOM.Route path='/' component={App} />
</ReactRouterDOM.MemoryRouter >
), document.getElementById('root'));
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.2/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.2/react-dom.min.js"></script>
<script src="https://unpkg.com/react-router-dom/umd/react-router-dom.min.js"></script>