Реагировать: Получить параметр маршрута при использовании метода рендеринга в маршрутизации - PullRequest
0 голосов
/ 22 февраля 2019

В настоящее время я немного изменил свою маршрутизацию для поддержки определенных маршрутов, имеющих разные, произвольные схемы расположения.Схема работает на всех видах, кроме тех случаев, когда мне нужно передать значение по маршруту в компонент.Например, у меня определен следующий маршрут:

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}
    />
...