我正在使用react-redux来改变我的反应应用程序的状态。我还使用authguard来阻止访问我的路由。我正在尝试使用react in react-redux来映射我当前的状态。
childRecyclerView.setNestedScrollingEnabled(false);
当我在状态中打印状态值时,它显示值1.但是当我使用' props.userLoginstatus'进行检查时,它总是返回false。这里的问题是什么?
答案 0 :(得分:1)
props.userLoginStatus
未正确使用,因为此处props
指的是router props
而不是PrivateRoute
道具,您实际上可以解构userLoginStatus
道具< / p>
import React from 'react';
import { connect } from 'react-redux';
import { Redirect,Route} from 'react-router-dom';
const PrivateRoute = ({ component: Component, userLoginStatus, ...rest }) => (
<Route {...rest} render={(props) => (
userLoginStatus==1
? <Redirect to='/home' />
: <Component {...props} />
)} />
)
const mapStateProps=(state)=> {
console.log(state.loginDetails.status);
return {
userLoginStatus:state.loginDetails.status
}
}
export default connect(mapStateProps)(PrivateRoute);