Маршрут к тому же компоненту React, даже если параметр path не указан

#reactjs #routes #react-router #react-router-dom

#reactjs #маршруты #react-маршрутизатор #react-router-dom

Вопрос:

Я пытаюсь отобразить тот же компонент в своем приложении, даже если параметр path не указан:

   <Switch>
    <Route
      path="/productInfoList/:product"
      component={ProductInfoList}
     />
  </Switch>
  

Однако, если в URL-адресе нет параметра «:product», компонент не отображается. Есть ли способ отобразить тот же компонент «ProductInfoList», даже если параметр path не указан?

Я чувствую, что должен быть эффективный способ сделать это, чем повторное объявление нового маршрута только для path="/productInfoList" всех.

Комментарии:

1. похоже, что ваш компонент может работать без /:product pram, поэтому удалите его из path и установите флажок в компоненте, если path pram был передан, и если это так, выполните свою логику

Ответ №1:

привет, вы можете проложить маршрут без pram, а затем просто передать историю.нажать или связать

 history.push({
  pathname: '/template',
  search: '?query=abc',
  state: { detail: response.data }
})
<Link to={{
      pathname: '/template',
      search: '?query=abc',
      state: { detail: response.data }
    }}> My Link </Link>
  

как вы можете видеть здесь, вы можете передать состояние, если хотите получить данные, которые вы можете использовать
props.location.state.detail
таким образом, вы можете отслеживать, получаете ли вы состояние или нет, а затем использовать его по своему усмотрению