我有一个需要认证的redux应用程序。现在,我正在尝试确保应用程序确保用户在应用程序中执行应用程序时仍可以登录。这是我的App.jsx文件的底部:
function mapStateToProps({ offline, user }) {
return {
// we use this to know if we should redirect to auth pages
// we don't want logged in users to be hitting these static pages
loggedIn: !!user.token,
offline,
};
}
const ConnectedApp = connect(mapStateToProps)(App);
export default ConnectedApp;
我通过chrome开发人员工具清除站点本地存储来测试此功能。然后在网站上执行操作。我放置了许多不同的日志语句。我发现正在调用mapStateToProps
,但道具没有改变。该应用程序继续认为用户仍在登录并且状态没有更改。
我一直在关注可以找到的所有在线资源,但似乎无济于事。我想念什么吗?
答案 0 :(得分:2)
这是因为mapState
仅在将操作调度到Redux商店时才重新运行,并且 结果被计算为新的商店状态。修改本地存储不涉及调度Redux操作,因此您的mapState
将永远不会运行。
在localStorage
函数中不要依赖mapState
中的值-它们应该 only 从state
参数中提取值,然后返回这些值。 / p>