You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Sep 27, 2023. It is now read-only.
Hi there please help to understand what is going on here ...
I'm trying to use React Relay and getting this error in next js application
error - ./pages/edit/[id].js:23:0
Module not found: Can't resolve '..\..\__generated__\IdEditPageQuery.graphql'
Did you mean './..\..\__generated__\IdEditPageQuery.graphql'?
Requests that should resolve in the current directory need to start with './'.
Requests that start with a name are treated as module requests and resolve within module directories (node_modules).
If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.
21 |
22 |
> 23 | Edit.query = graphql`
24 | query IdEditPageQuery($productId: ID!) {
25 | viewer {
26 | product(id: $productId) {
also let me attach the part of the code :
// @flow
import React from 'react';
import Box from "@material-ui/core/Box";
import { graphql } from 'react-relay';
import type { IdEditPageQueryResponse } from './../../__generated__/IdEditPageQuery.graphql';
type Props = {
productId: string;
...IdEditPageQueryResponse;
};
function Edit(props: Props) {
return (
<Box>
test
</Box>
);
}
Edit.query = graphql`
query IdEditPageQuery($productId: ID!) {
viewer {
product(id: $productId) {
id
name
description
price
createdAt
}
}
}
`;
export default Edit;
the error is related to the line Edit.query = graphql so how to fix this error ? why it's happening
also let me attach the _app.js file maybe it's will realted to the this ::
here is the _app.js file
// @flow
import React, { Suspense } from 'react';
import App from 'next/app';
import Head from 'next/head';
import { QueryRenderer } from 'react-relay';
import ThemeProvider from '@material-ui/styles/ThemeProvider';
import CssBaseline from '@material-ui/core/CssBaseline';
import { createIntl, createIntlCache, RawIntlProvider } from 'react-intl';
import type { NextComponentType, NextPageContext } from 'next/next-server/lib/utils'; //eslint-disable-line
import theme from '../lib/theme';
import { initEnvironment, createEnvironment } from '../lib/createEnvironment';
import MainContainer from '../components/MainContainer';
if (!Intl.PluralRules) {
/* eslint-disable global-require */
require('@formatjs/intl-pluralrules/polyfill');
require('@formatjs/intl-pluralrules/locale-data/en');
require('@formatjs/intl-pluralrules/locale-data/ru');
require('@formatjs/intl-pluralrules/locale-data/it');
/* eslint-enable */
}
const cache = createIntlCache();
type InitialProps = {
Component: NextComponentType<NextPageContext, $FlowFixMe, $FlowFixMe>,
pageProps: $FlowFixMe,
locale: string,
messages: { [key: string]: string; },
relayData: $FlowFixMe,
token: string,
records: $FlowFixMe,
};
type Props = {
Component: NextComponentType<NextPageContext, $FlowFixMe, $FlowFixMe>,
ctx: $FlowFixMe,
};
export default class MyApp extends App<InitialProps> {
static async getInitialProps({ Component, ctx }: Props): $FlowFixMe {
let pageProps = {};
// $FlowFixMe[prop-missing]
if (Component.getInitialProps) {
// $FlowFixMe[not-a-function]
pageProps = await Component.getInitialProps(ctx);
}
// Get the `locale` and `messages` from the request object on the server.
// In the browser, use the same values that the server serialized.
const { req } = ctx;
let locale = 'en';
let messages = {};
if (req) {
// $FlowFixMe
const getLang = require('../lib/getLang').default; // eslint-disable-line global-require
({ locale, messages } = getLang(req));
} else if (typeof window !== 'undefined') {
({ locale, messages } = window.__NEXT_DATA__.props); // eslint-disable-line no-underscore-dangle
}
return { pageProps, locale, messages };
}
componentDidMount() {
// Remove the server-side injected CSS.
const jssStyles = document.querySelector('#jss-server-side');
if (jssStyles) {
if (jssStyles.parentNode) jssStyles.parentNode.removeChild(jssStyles);
}
}
render(): React$Node {
const {
// $FlowFixMe[incompatible-use]
Component,
pageProps,
locale,
messages,
relayData,
token,
records,
} = this.props;
const intl = createIntl(
{
locale,
messages,
},
cache,
);
if (!Component.query) {
return <Component {...pageProps} locale={locale} />
}
const environment = createEnvironment(
{
relayData,
records,
},
JSON.stringify({
queryID: Component.query.params.name,
variables: pageProps.variables || {},
}),
);
return (
<RawIntlProvider value={intl}>
<Head>
<meta charSet="utf-8" />
<title>Products</title>
<meta
name="viewport"
content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no"
/>
</Head>
<ThemeProvider theme={theme}>
<CssBaseline />
<QueryRenderer
environment={environment}
query={Component.query}
variables={pageProps.variables}
render={(params) => {
const { error, props } = params;
if (props && props.viewer) {
return (
<Suspense fallback={null}>
<Component {...pageProps} environment={environment} {...props} locale={locale} />
</Suspense>
);
}
if (error) {
return "Error!";
}
return "Loading...";
}}
/>
</ThemeProvider>
</RawIntlProvider>
);
}
}
P.S. also let me mention that I have index.js page which is working correct without issues here is code from index.js file
// @flow
import React, { Component } from 'react';
import { graphql } from 'react-relay';
import Box from "@material-ui/core/Box";
import { Button, Link } from '@material-ui/core';
import Typography from "@material-ui/core/Typography";
import ProductCard from "../components/ProductCard";
import type { pages_indexQueryResponse } from '../__generated__/pages_indexQuery.graphql';
type Props = {
...pages_indexQueryResponse;
};
function Index(props: Props) {
return (
<Box>
<Box display="flex" alignItems="center" justifyContent="center" m={4}>
<Typography variant="h1">
Products
</Typography>
</Box>
<Box display="flex" alignItems="center" justifyContent="center" m={4}>
<Link href="/create">
whant to create new product ?
</Link>
</Box>
<Box display="flex" flexWrap="wrap">
{props.viewer.products.map(product => (
<Link href={`/edit/${product.id}`} underline="none" key={product.id}>
<ProductCard key={product.id} product={product} />
</Link>
))}
</Box>
</Box>
);
}
Index.query = graphql`
query pages_indexQuery {
viewer {
products {
id
name
description
price
createdAt
}
}
}
`;
export default Index;
The text was updated successfully, but these errors were encountered:
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Hi there please help to understand what is going on here ...
I'm trying to use React Relay and getting this error in next js application
also let me attach the part of the code :
the error is related to the line
Edit.query = graphql
so how to fix this error ? why it's happeningalso let me attach the _app.js file maybe it's will realted to the this ::
here is the _app.js file
P.S. also let me mention that I have index.js page which is working correct without issues here is code from index.js file
The text was updated successfully, but these errors were encountered: