Reactjs 如何根据路由器中的条件分派操作
如何以正确的方式基于条件分派操作: 我执行了以下操作,但出现语法错误Reactjs 如何根据路由器中的条件分派操作,reactjs,firebase,redux,react-redux,react-router-v4,Reactjs,Firebase,Redux,React Redux,React Router V4,如何以正确的方式基于条件分派操作: 我执行了以下操作,但出现语法错误 const PrivateRoute=({component:component,…rest})=>{ ( firebase.auth().onAuthStateChanged((用户)=>user ?( store.dispatch(actions.login(user.uid)); ) :( store.dispatch(actions.logout()); ) ) )}/> } 常规括号((..))用于返回值。这就是语
const PrivateRoute=({component:component,…rest})=>{
(
firebase.auth().onAuthStateChanged((用户)=>user
?(
store.dispatch(actions.login(user.uid));
)
:(
store.dispatch(actions.logout());
)
)
)}/>
}
常规括号((..)
)用于返回值。这就是语法错误的原因。你应该像下面这样做
const PrivateRoute = ({ component: Component, ...rest }) => {
// return the Route component
return <Route {...rest} render={props => {
firebase.auth().onAuthStateChanged((user) => {
if(user) {
// run dispatch
store.dispatch(actions.login(user.uid));
// return component
return <Component {...props} />
} else {
// run dispatch
store.dispatch(actions.logout());
// return component
return <Redirect to={{ pathname: '/login', state: { from: props.location } }} />
}
});
}} />
}
const PrivateRoute=({component:component,…rest})=>{
//返回路由组件
返回{
firebase.auth().onAuthStateChanged((用户)=>{
如果(用户){
//运行调度
store.dispatch(actions.login(user.uid));
//返回组件
返回
}否则{
//运行调度
store.dispatch(actions.logout());
//返回组件
返回
}
});
}} />
}
const PrivateRoute = ({ component: Component, ...rest }) => {
// return the Route component
return <Route {...rest} render={props => {
firebase.auth().onAuthStateChanged((user) => {
if(user) {
// run dispatch
store.dispatch(actions.login(user.uid));
// return component
return <Component {...props} />
} else {
// run dispatch
store.dispatch(actions.logout());
// return component
return <Redirect to={{ pathname: '/login', state: { from: props.location } }} />
}
});
}} />
}