В настоящее время я немного изменил свою маршрутизацию для поддержки определенных маршрутов, имеющих разные, произвольные схемы расположения.Схема работает на всех видах, кроме тех случаев, когда мне нужно передать значение по маршруту в компонент.Например, у меня определен следующий маршрут:
function renderWithLayout(Component, Layout) {
return <Layout><Component /></Layout>
}
export default class App extends Component {
displayName = App.name;
render() {
<ApolloProvider client={client}>
<Route
path="/articles/view/:id"
render={() => renderWithLayout(ArticlesView, PublicLayout)}
exact={true}
/>
</ApolloProvider>
}
}
, затем в моем компоненте ArticlesView я пытаюсь получить id
, переданный маршруту, следующим образом в методе render()
:
const { match: params } = this.props;
console.log(params); //this is undefined
var id = params.id; //TypeError: Cannot read property 'id' of undefined
до того, как я сменил маршрут, я мог бы просто const { id } = this.props.match.params;
как мне решить эту проблему?
РЕДАКТИРОВАТЬ: до изменения маршрутизации у меня был маршрутопределяется как:
<Route
path="/articles/view/:id"
component={ArticlesView}
exact={true}
/>