Reactjs 使用connect响应无状态组件
我想创建一个auth HOC,它将重定向用户或显示组件 即: 我尝试了很多返回函数的函数版本,但我无法确定它 有什么想法吗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=
谢谢 我看到的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);