Это продолжение вопроса:
onEnter не вызывается в React-Router
Следующий код правильно выполняет перенаправление, но на самом деле не отображает компонент, связанный с URL-адресом перенаправления.
Ниже приведен мой код, небольшая адаптация кода, приведенного в предыдущем вопросе.
// Authentication "before" filter
function requireAuth(){
if(isLoggedIn())
return <Home />
else
return <Redirect to="/front"/>
}
// Render the app
render(
<Provider store={store}>
<Router history={history}>
<App>
<Switch>
<Route path="/front" component={Front} />
<Route path="/home" render={requireAuth} />
<Route exact path="/" render={requireAuth} />
<Route path="*" component={NoMatch} />
</Switch>
</App>
</Router>
</Provider>,
document.getElementById("lf-app")
)
При обновлении браузера после перенаправления страница отображается корректно.
Я бы ожидал, что рендеринг будет работать, но это не так... Это ошибка или желаемое поведение?
История:
...
import {createBrowserHistory} from "history";
// Init sagaMiddleware
const sagaMiddleware = createSagaMiddleware();
const store = createStore(
appReducers,
applyMiddleware(sagaMiddleware)
);
const history = syncHistoryWithStore(createBrowserHistory(), store);
history
? - person hazardous   schedule 14.03.2017location
в ваших компонентах со значением history.location после перенаправления? Если они не синхронизированы, я бы рекомендовал временно удалить часть синхронизации магазина и попробовать один раз. - person hazardous   schedule 14.03.2017connect()
в своем ‹Приложении /› или в чем-то еще? - person Sergey Reutskiy   schedule 15.03.2017