我在index.js文件中使用ReactDom
进行渲染。
ReactDOM.render(
<Provider store={store}>
<HashRouter>
<Route path="/:myParam">
<Switch>
<SomeProvider myParam={HOW_TO_ACCESS_MY_PARAM_HERE}>
<Route path="/:myParam/home" component={Home}/>
<Route path="/:myParam/test" component={MyTest}/>
</SomeProvider>
</Switch>
</Route>
</HashRouter>
</Provider>,
document.getElementById('root')
);
我正在寻找将route param
作为道具传递给SomeProvider
总是myParam
并且Home
和MyTest
组件中的this.props.match.params.myParam
可以使用它,但我需要在第一个Route
的子项内访问它。< / p>
有没有办法可以在那里得到它?在入口点文件中,而不是组件。
答案 0 :(得分:1)
您可以使用withRouter
从match
的任何孩子访问<Route>
:
import { withRouter } from 'react-router-dom'
class SomeProvider extends Component {
...
render() {
const myParam = this.props.match.params.myParam;
...
}
}
export default withRouter(SomeProvider)
这样做,您不需要将myParam
作为道具传递。