GithubHelp home page GithubHelp logo

Comments (6)

juntao avatar juntao commented on June 16, 2024 1

Since this occurs with regular SSR, perhaps you could ask in stackoverflow or official React forums?

Yes, interestingly if I run the exact same source code via npm start which is served on localhost:3000 the same "root.hydrate is not a function" error appears in the browser's console.

image

Also the same error exists when I use ReactDOMServer instead of just ReactDOM i.e.


import ReactDOMServer from 'react-dom/client';

const root = ReactDOMServer.createRoot(document.getElementById('root'));

root.hydrate(

// snip ...

from wasmedge-quickjs.

juntao avatar juntao commented on June 16, 2024

Do you have this error when you do regular React SSR without wasmedge?

from wasmedge-quickjs.

tpmccallum avatar tpmccallum commented on June 16, 2024

Yes, interestingly if I run the exact same source code via npm start which is served on localhost:3000 the same "root.hydrate is not a function" error appears in the browser's console.

image

Also the same error exists when I use ReactDOMServer instead of just ReactDOM i.e.

import ReactDOMServer from 'react-dom/client';
const root = ReactDOMServer.createRoot(document.getElementById('root'));
root.hydrate(
// snip ...

from wasmedge-quickjs.

tpmccallum avatar tpmccallum commented on June 16, 2024

Thankfully for now root.render works just fine for regular SSR

image

As well as with WasmEdge SSR.

image

from wasmedge-quickjs.

tpmccallum avatar tpmccallum commented on June 16, 2024

Link to question for our convenience

from wasmedge-quickjs.

tpmccallum avatar tpmccallum commented on June 16, 2024

Please find a solution to this issue; as per a response via the above stackoverflow link.

In summary hydrate has been replaced with hydrateRoot in React 18.

hydrateRoot(container, element[, options])

The code for this SSR example was altered as per the following code block.

// Before
import ReactDOM from 'react-dom/client';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.hydrate(
  <React.StrictMode>
   <App />
 </React.StrictMode>
);

// After
import { hydrateRoot } from 'react-dom/client';
const container = document.getElementById('root');
const root = hydrateRoot(container, <App />);

After implementing this slightly different syntax the error was resolved.

There is also official documentation for hydrateRoot

from wasmedge-quickjs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.