React.NET icon indicating copy to clipboard operation
React.NET copied to clipboard

ReferenceError: TextEncoder is not defined

Open m1is opened this issue 2 years ago • 7 comments

I created a ReactJS.NET project using the reactnet-webpack template, then upgraded it from React 16 to the latest v18. However when I try to run the out of the box example I get the following error:

ReferenceError: TextEncoder is not defined at eval (:145:19) -> var textEncoder = new TextEncoder(); at eval (:7002:5) at ./node_modules/react-dom/cjs/react-dom-server.browser.development.js (vendor.6d1c51ef.js:23:1) at webpack_require (runtime.36e5d9f0.js:85:30) at eval (:6:7) at ./node_modules/react-dom/server.browser.js (vendor.6d1c51ef.js:59:1) at webpack_require (runtime.36e5d9f0.js:85:30) at eval (:6:74) at eval (:47:30) at ./Content/components/expose-components.js (main.ab0e9b20.js:35:1) at webpack_require (runtime.36e5d9f0.js:85:30) at checkDeferredModules (runtime.36e5d9f0.js:46:23) at webpackJsonpCallback (runtime.36e5d9f0.js:33:19) at vendor.6d1c51ef.js:1:53 at JavaScriptEngineSwitcher.V8.V8JsEngine.InnerExecute(String code, String documentName) at JavaScriptEngineSwitcher.Core.JsEngineBase.Execute(String code, String documentName) at React.JavaScriptEngineFactory.LoadUserScripts(IJsEngine engine)

How would I go about resolving this?

m1is avatar Aug 19 '22 22:08 m1is

try downgrading to react and react-dom 16.12.0

ChristianGilmer avatar Aug 22 '22 23:08 ChristianGilmer

change the import of ReactDOMServer to be from either "react-dom/cjs/react-dom-server-legacy.browser.development" or "react-dom/cjs/react-dom-server-legacy.browser.production.min.js" instead of reactdom/server

LinusCenterstrom avatar Aug 25 '22 11:08 LinusCenterstrom

change the import of ReactDOMServer to be from either "react-dom/cjs/react-dom-server-legacy.browser.development" or "react-dom/cjs/react-dom-server-legacy.browser.production.min.js" instead of reactdom/server

I already abandoned this, just too many issues trying to get it to work with Material UI.

m1is avatar Aug 25 '22 17:08 m1is

Above solution with linking to the legacy files does not work for me. It keeps throwing the same error, and / or TextEncoder is not a constructor.

sebastian-pierre avatar Sep 14 '22 12:09 sebastian-pierre

Sorry, don’t know of a fix for this. As others have noted, probably best to move to another library if you need react 18 support.

Probably need to add a note that the library is in maintenance mode, and folks should stick with react 16 as long as they are on this library.

On Thu, Aug 25, 2022 at 13:49, m1is @.***> wrote:

change the import of ReactDOMServer to be from either "react-dom/cjs/react-dom-server-legacy.browser.development" or "react-dom/cjs/react-dom-server-legacy.browser.production.min.js" instead of reactdom/server

I already abandoned this, just too many issues trying to get it to work with Material UI.

— Reply to this email directly, view it on GitHub https://github.com/reactjs/React.NET/issues/1309#issuecomment-1227584782, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHGCFWMQMWZOKEWJOBARXTV26W3PANCNFSM57CFIEZQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

dustinsoftware avatar Sep 14 '22 13:09 dustinsoftware

I added https://github.com/anonyco/FastestSmallestTextEncoderDecoder as a polyfill in my server webpack configuration and that seemed to have fixed it.

dineshpannu avatar Nov 18 '22 09:11 dineshpannu

This is due to change React v18 added. The only work around at this time would be to add a polyfill to your build scripts. I started a discussion about plans i have to bring this project up to better support React v18 but its going to require some major changes. https://github.com/reactjs/React.NET/discussions/1343

LorenDorez avatar Aug 26 '23 23:08 LorenDorez