-
-
Notifications
You must be signed in to change notification settings - Fork 59
Description
Running into a very similar issue as #194, a SSR build of a Next.js 13 project is failing from this call: https://github.com/relay-tools/relay-hooks/blob/master/src/ReactRelayContext.ts#L18
in particular, the react === firstReact
invariant is failing: https://github.com/facebook/relay/blob/main/packages/relay-runtime/store/createRelayContext.js#L39
from monkey-patching Relay, I have confirmed that firstReact.default === react
is true
, which makes me think this is a Webpack issue.
and the ReactRelayContext code after being passed through Webpack looks like this:
var react = __webpack_require__(3729);
var react_default = /*#__PURE__*/__webpack_require__.n(react);
;// CONCATENATED MODULE: ../node_modules/relay-hooks/lib/es/ReactRelayContext.js
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict-local
* @format
*/
var createRelayContext = relay_runtime.__internal.createRelayContext;
var ReactRelayContext_ReactRelayContext = createRelayContext((react_default()));
which looks like it's passing in React.default
rather than the plain React
in this invocation. Bizarrely, in the same build react-relay
in calling createReactContext
without Webpack unwrapping React.
At this point, I must admit that I am not sure if this is a relay-hooks bug, a Webpack bug, or perhaps a Next.js configuration bug. But I did notice that if I monkey-patch node_modules/relay-hooks/lib/es/ReactRelayContext.js
and change import React from 'react';
into import * as React from 'react';
, the issue does not occur. So perhaps this is a relay-hooks bug?