NextJS ve TypeScript ile Relay nasıl kullanılır?

TLDR: ya dinamik içe aktarma kullanın ya da React 18 alpha kullanın https://github.com/reactwg/react-18/discussions/9

Sorun

Bunun gibi bazı Röle kodunuz varsa:

import { Suspense } from "react";
import { graphql } from "relay-runtime";
import { useLazyLoadQuery } from "react-relay";
const RelayTestQuery = graphql`
  query RelayTestQuery {
    viewer {
      id
    }
  }
`;
function RelayTestInner() {
  const data = useLazyLoadQuery(RelayTestQuery, {
    variables: {},
  });
  return <div>hi</div>;
}
export default function RelayTest() {
  return (
    <Suspense fallback={<div>Loading</div>}>
      <RelayTestInner />
    </Suspense>
  );
}

export default function Home() {
  return (
    <RelayEnvironmentProvider environment={RelayEnvironment}>
      <RelayTest />
    </RelayEnvironmentProvider>
  );
}

ReactDOMServer henüz Suspense'i desteklemiyor.

Çözüm

Dinamik İçe Aktarmalar

Bunu düzeltmek için RelayTestDynamicbunun yerine şunları kullanabilirsiniz :

import dynamic from "next/dynamic";
const RelayTestDynamic = dynamic(() => import("./RelayTest"), {
  ssr: false,
});
export default RelayTestDynamic;

Alfa Sürümleri

Alternatif olarak, alfa sürümlerini kullanabilirsiniz reactve react-dom.

yarn add react@alpha react-dom@alpha

TSConfig Hakkında

https://github.com/relay-tools/relay-compiler-language-typescript#typescript şunlardan bahseder:

Ayrıca TypeScript derleyicisini es2015modüllere aktarılacak şekilde yapılandırdığınızdan commonjsve aşağıdaki tsconfig.jsonayarlarla modüllere aktarımı Babel'e kadar bıraktığınızdan emin olun :

Bunu gereksiz buldum. Neden olduğundan emin değil misiniz, Röle kancalarını kullanırken geçerli olmayabilir?

kod işaretçileri

Örnekler için bu depolara göz atın.

  • https://github.com/arcticmatt/relay-nextjs-typescript
  • https://github.com/arcticmatt/relay-nextjs

Suggested posts

İnmenin Yıkıcı Sonuçlarından Kaçınmak: Bir Ailenin Yolculuğundan Öğrenilenler .

İnmenin Yıkıcı Sonuçlarından Kaçınmak: Bir Ailenin Yolculuğundan Öğrenilenler .

Giriş İnme, herhangi bir zamanda herkesi etkileyebilecek tıbbi bir acil durumdur. Beynin bir kısmına kan akışı bozulduğunda meydana gelir ve ani beyin fonksiyon kaybına yol açar.

Jest — Güçlü Bir JavaScript Test Çerçevesi

Jest — Güçlü Bir JavaScript Test Çerçevesi

Test, yazılım geliştirmenin önemli bir parçasıdır. Kodun güvenilir olmasını, beklendiği gibi çalışmasını sağlar ve hata olasılığını azaltır.

Related posts

SINIRSIZ HAYAT

Büyüdüğünde, dünyanın olduğu gibi olduğunu ve hayatının sadece dünyanın içinde yaşamak olduğunu, hayatını asla riske atmadan, sadece belirlenmiş bir yolu takip et ve sonunda öl ve ölmemeye çalış. duvarlara çok fazla vur. Ama bu çok sınırlı bir hayat.

Tasarımda iki yıl - İyi, kötü ve çirkin…

Tasarımda iki yıl - İyi, kötü ve çirkin…

"Hey Siri, Olivia Dean'in Me Dive oyununu çal." Nijerya, Akure'deki Future Academy Africa'da stajıma başladığımda Mayıs 2021'di.

Artık parola yok — geçiş anahtarları parolanızın yerini nasıl alacak?

Artık parola yok — geçiş anahtarları parolanızın yerini nasıl alacak?

Belirsizliği önlemek için aşağıdaki terimler kullanılacaktır; Doğrulayıcı; Web sitesine giriş yapmak için kullanılan cep telefonu; Kullanıcının oturum açma isteği Hizmetini yapmak için kullandığı web sitesi veya uygulama; Verilen hizmeti sağlayan satıcı, örn.

Work Week'te Öğrenme sandığınızdan daha önemli

Work Week'te Öğrenme sandığınızdan daha önemli

Çoğu zaman kendimizi, bizim için iyi olduğunu bildiğimiz şeyleri uygulamakta zorlanırken buluruz. Bir başkasına onu sevdiğimizi söylemekten bir korsan gibi konuşmayı hatırlamaya kadar, her zaman bu şeyleri zaten yaptıkları için bir günlük, haftalık veya aylık olaylara gerek olmadığını iddia edenler olacaktır.