Reputation: 57
i am using react-snap to pre-render pages with react-helmet and it works fine but i ran into two problems
here is my index.js:
import { hydrate, render } from "react-dom";
import React, { Suspense } from "react";
import { RecoilRoot } from "recoil";
import { BrowserRouter } from "react-router-dom";
// import worker from "mocks/browser";
import { ToastContainer } from "components/shared/uikit/toast/ToastContainer";
// import "swiper/swiper-bundle.min.css";
import Loader from "./components/shared/uikit/loaders/loader/Loader";
import "./index.css";
import App from "./App";
import "./configs/i18n";
const rootElement = document.getElementById("root");
if (rootElement.hasChildNodes()) {
hydrate(
<RecoilRoot>
<ToastContainer>
<Suspense
fallback={
<Loader
customSize={60}
suspense
/>
}
>
<BrowserRouter basename="/">
<App />
</BrowserRouter>
</Suspense>
</ToastContainer>
</RecoilRoot>,
rootElement
);
} else {
render(
<RecoilRoot>
<ToastContainer>
<Suspense
fallback={
<Loader
customSize={60}
suspense
/>
}
>
<BrowserRouter>
<App />
</BrowserRouter>
</Suspense>
</ToastContainer>
</RecoilRoot>,
rootElement
);
}
and here is my snippet from package.json:
"reactSnap": {
"puppeteerArgs": [
"--no-sandbox",
"--disable-setuid-sandbox"
]
},
Upvotes: 1
Views: 348