Reactjs 使用connect响应无状态组件

Reactjs 使用connect响应无状态组件,reactjs,functional-programming,reactive-programming,Reactjs,Functional Programming,Reactive Programming,我想创建一个auth HOC,它将重定向用户或显示组件 即: 我尝试了很多返回函数的函数版本,但我无法确定它 有什么想法吗 谢谢 我看到的HOC的常用用法是它返回一个类: const authExtender = WrappedComponent => { return class extends Component { render() { if(!this.props.loggedIn) { return <Redirect to=

我想创建一个auth HOC,它将重定向用户或显示组件

即:

我尝试了很多返回函数的函数版本,但我无法确定它

有什么想法吗


谢谢

我看到的HOC的常用用法是它返回一个类:

const authExtender = WrappedComponent => {
   return class extends Component {
     render() {
       if(!this.props.loggedIn) {
         return <Redirect to={'/login'} />;
       }

       return <WrappedComponent {...this.props} />;
     }
   }
};

使用此代码,您可以仅使用一个函数创建一个
HOC
,并将其连接到存储

const membersOnly=WrappedComponent=>{
//如果未记录,则呈现重定向,否则为组件
常量comp=({logged,…props})=>{
返回记录?:
}
//将其连接到存储
返回连接(state=>({logged:state.logged}))(comp)
}
//渲染

const HomePageMembersOnly=membersOnly(HomePage)
您正在使用react路由器吗?如果是这样的话,这帮助我实现了这个功能
const MembersPageForLoggedOnly = memberOnlyPageHOC(MemebersPage);
const authExtender = WrappedComponent => {
   return class extends Component {
     render() {
       if(!this.props.loggedIn) {
         return <Redirect to={'/login'} />;
       }

       return <WrappedComponent {...this.props} />;
     }
   }
};
export default authExtender(SomeComponent);