adamsoffer / next-apollo

React higher-order component for integrating Apollo Client with Next.js
MIT License
481 stars 64 forks source link

Is it possible to switch getInitialProps to getServerSideProps? #95

Open newKeating opened 3 years ago

newKeating commented 3 years ago

Well, since this withApollo hoc is using getInitialProps for ssr, there is a conflict when using getServerSideProps on a page component.


const Restaurant: NextPage<IProps> = ({ id }) => {
  console.log("id", id);
  const { data, loading } = useRestaurantQuery({
    variables: {
      input: {
        restaurantId: id,
      },
    },
  });

  console.log("loading", loading);
  console.log("data", data);
  if (loading) {
    return <div>Loading...</div>;
  }

  return (
    <div>
      restaurant
      <div>{data?.restaurant.result?.name}</div>
    </div>
  );
};

export default withApollo({ssr: true})(Restaurant);

export const getServerSideProps: GetServerSideProps = async (ctx) => {
  console.log("ctx", ctx);

  const { id } = ctx.query;
  if (!id) {
    return {
      props: {},
    };
  }

  return {
    props: { id: parseInt(id as string) },
  };
};

Screen Shot 2021-01-28 at 12 38 45 PM

So, I'm looking for a way to make withApollo hoc utlizing getServerSideProps for "ssr" mode.

Could there be a way to do that?

besSejrani commented 3 years ago

Yes, it would be great to have that change, since next has moved to version 10.1

herbievine commented 3 years ago

Please introduce this @adamsoffer. But for now, is there a workaround or a temporary fix?

AxelReid commented 1 year ago

Is there any action on this?