代码之家  ›  专栏  ›  技术社区  ›  JamesG

使用Apple Loop-Qu超模式与现有的Hoc

  •  0
  • JamesG  · 技术社区  · 7 年前

    import * as React from 'react';    
    export const AuthRoute = () => (WrappedComponent: any) => {
      return class extends React.Component<{}, {}> {
        constructor(props: any) {
          super(props);
        }
        public render() {
          return <WrappedComponent {...this.props} />;
        }
      };
    }
    

    我希望这个HOC能够访问另一个HOC——React Apollo client HOC for GraphQL。我试过在这个HOC上使用Apollo客户机,但它给出了一个错误“TypeError:Cannot set property'props'of undefined”。我的尝试是:

    const AuthRoute = () => (WrappedComponent: any) => {
      return class extends React.Component<{}, {}> {
        constructor(props: any) {
          super(props);
        }
        public render() {
    
          return <WrappedComponent {...this.props} />;
        }
      };
    }
    
    const GET_AUTH = gql`
      {
        authStatus {
          authStatus
        }
      }
    `;
    
    export default compose(graphql(GET_AUTH))(AuthRoute);
    

    谢谢!

    1 回复  |  直到 7 年前
        1
  •  1
  •   Brian Adams    7 年前

    看来你刚刚输入了错别字。将默认导出更改为:

    export default compose(graphql(GET_AUTH), AuthRoute);

    …而且应该有用

    推荐文章