Я использую ReactJS, redux и response-router.Я использую localStorage для автоматического входа пользователей.Мой App.js выглядит следующим образом:
` <Router>
<Provider store={store}>
<div className="App">
<Route path="/" component={NavBar} />
<Route exact path="/" component={Home} />
<Route exact path="/list" component={RoadmapList} />
<Route path="/roadmap" component={OneRoadmap} />
<Route path="/search" component={Search} />
<Route exact path="/add" component={RoadmapAdder} />
<Route exact path="/register" component={Register} />
<Route exact path="/login" component={Login} />
<Route
exact
path="/savedRoadmaps"
component={SavedRoadmapsView}
/>
<Route path="/profile" component={AuthorProfile} />
<Route exact path="/account/edit" component={Profile} />
</div>
</Provider>
</Router>`
Я ранее делал автоматическую аутентификацию в моем компоненте NavBar , так как NavBar будет в каждом отдельном URL из-за <Route path="/" component={NavBar}/>
, я думалЯ мог бы просто использовать NavBar для автоматического входа в систему моих пользователей с помощью действия с избыточностью, называемого loginUser, а затем обновить несколько состояний избыточности, таких как isAuthenticated и user_info.Проблема состоит в том, что если бы я рендерил NavBar и, скажем, SavedRoadmapsView, SavedRoadmapsView не получал бы состояния редукции немедленно, так как он работает параллельно с NavBar .
Я попытался автоматически авторизовать пользователей в App.js, например:
` async componentDidMount() {
var email = localStorage.getItem("email");
var password = localStorage.getItem("password");
var userData = { email: email, password: password };
await loginUser(userData);
}`
Это не сработало.Может ли так быть, что loginUser является избыточным действием и не может использоваться вне провайдера?Что вы думаете об этом?Заранее спасибо.