Я условно делаю такое перенаправление
render() {
if (condition) {
return(<someComponent />)
} else {
return (
<BrowserRouter>
<Redirect push to = "/newRoute" />
</BrowserRouter>
)
}
}
но мой компонент действительно отображается при перенаправлении маршрута. Как я могу передать ему некоторые реквизиты, чтобы компонент рендерился?
изменить: вот еще какой-то контекст
index.js
export const init = () => {
return render(
<MuiThemeProvider muiTheme = {muiTheme}>
<Provider store = {store}>
<Router history = {history} routes = {routes} />
</Provider>
</MuiThemeProvider>, document.getElementById('app')
)
}
init()
а затем у меня есть файл, который представляет собой гораздо более длинную версию этого
routes.js
export default (
<Route path='/' component = {App}>
<IndexRedirect to='/in'/>
<Route path='in' component = {Authentication(MainPage)}>
<Route path='/newRoute' component = {newComponent}/>
</Route>
</Route>
)
Спасибо за ваш ответ. Мое условие if работает нормально. Браузер обновляет маршрут, но сам компонент не отображает.
Не могли бы вы также поделиться фактическим компонентом всего JS-файла? Насколько я понимаю, на данном этапе вы убедились, что ваш метод рендеринга и условие работают должным образом, и в соответствии с вашими ожиданиями возвращается "someComponent", но не рендеринг, верно?
Где определяется <Route path = "/newRoute"/>, если вообще определяется?
Я обновил свой исходный пост, добавив еще контекст





Нужно больше информации. Что именно происходит прямо сейчас? Ваше условие if работает или еще и какой компонент вам нужно отрендерить? <someComponent /> или перенаправить?