接下来js,不再支持ReactDom.render
Next js, ReactDom.render is no longer supported
我刚刚用 Next 12 启动了一个新的 Next JS 应用程序。
我在浏览器中加载所有页面时遇到此错误:
Warning: ReactDOM.render is no longer supported in React 18. Use
createRoot instead. Until you switch to the new API, your app will
behave as if it's running React 17. Learn more:
https://reactjs.org/link/switch-to-createroot
下一个 js 的 ReactDom.render 在引擎盖下,我该如何解决这个错误?
只需 运行 该命令即可获取最新的 React 版本
npx create-next-app@latest
其实我也有同样的 problem/warning ,
在我的例子中,我在我的 next.js 应用程序中使用“react-toastify”,上下文 api,
经过大量搜索...
我发现问题来自:
toast.configure() method
我在上下文 api 模块中使用它,
而且我还找到了官方“react-toastify”文档,讨论了与上下文 api 一起使用时与此方法相关的一些问题,并且他们从新版本中删除了此方法。
这里是官方文档的link:
https://fkhadra.github.io/react-toastify/migration-v9#toastconfigure-removal
最后我通过以下步骤解决了我的问题:
1-从我的上下文 api 模块中删除 toast.configure() 。
2- 我没有使用 toast.configure() ,而是在“_app”模块中使用了“ToastContainer”组件“只需定义它,吐司就可以正常工作”,这是我的“_app.js模块“:
import { useEffect } from 'react';
import '../styles/globals.css'
import 'bootstrap/dist/css/bootstrap.css';
import Nav from '../components/nav';
import Footer from '../components/footer';
import { AuthProvider } from '../my_utils/myContext/authcontext';
import { ToastContainer } from 'react-toastify';
function MyApp({ Component, pageProps }) {
useEffect(() => {
import ('bootstrap/dist/js/bootstrap.js')
import ('react-toastify/dist/ReactToastify.css')
}, []);
return (
<>
<AuthProvider>
<Nav />
<div className="allButFooter ms-3 me-3">
<Component {...pageProps} />
<ToastContainer />
</div>
<Footer />
</AuthProvider>
</>
)
}
export default MyApp
我不知道你的情况是否和我的情况一样,
但我希望对你有所帮助。
对我来说确实是脉轮。您需要为 NextJS
安装最新的 Chakra ui
npm i @chakra-ui/react@2.0.0-next.3
如果您已更新到 React 18 并在 Next.js 应用程序中使用 custom server 设置,您也可能会收到此警告。
对于这种情况,此问题已在 PR 版本 12.1.7-canary.2
中得到解决。要在您的项目中修复它,只需更新到最新的金丝雀版本,或等待稳定的 v12.1.7
版本。
npm install next@canary
我刚刚用 Next 12 启动了一个新的 Next JS 应用程序。
我在浏览器中加载所有页面时遇到此错误:
Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot
下一个 js 的 ReactDom.render 在引擎盖下,我该如何解决这个错误?
只需 运行 该命令即可获取最新的 React 版本
npx create-next-app@latest
其实我也有同样的 problem/warning ,
在我的例子中,我在我的 next.js 应用程序中使用“react-toastify”,上下文 api, 经过大量搜索...
我发现问题来自:
toast.configure() method
我在上下文 api 模块中使用它, 而且我还找到了官方“react-toastify”文档,讨论了与上下文 api 一起使用时与此方法相关的一些问题,并且他们从新版本中删除了此方法。
这里是官方文档的link:
https://fkhadra.github.io/react-toastify/migration-v9#toastconfigure-removal
最后我通过以下步骤解决了我的问题:
1-从我的上下文 api 模块中删除 toast.configure() 。
2- 我没有使用 toast.configure() ,而是在“_app”模块中使用了“ToastContainer”组件“只需定义它,吐司就可以正常工作”,这是我的“_app.js模块“:
import { useEffect } from 'react';
import '../styles/globals.css'
import 'bootstrap/dist/css/bootstrap.css';
import Nav from '../components/nav';
import Footer from '../components/footer';
import { AuthProvider } from '../my_utils/myContext/authcontext';
import { ToastContainer } from 'react-toastify';
function MyApp({ Component, pageProps }) {
useEffect(() => {
import ('bootstrap/dist/js/bootstrap.js')
import ('react-toastify/dist/ReactToastify.css')
}, []);
return (
<>
<AuthProvider>
<Nav />
<div className="allButFooter ms-3 me-3">
<Component {...pageProps} />
<ToastContainer />
</div>
<Footer />
</AuthProvider>
</>
)
}
export default MyApp
我不知道你的情况是否和我的情况一样, 但我希望对你有所帮助。
对我来说确实是脉轮。您需要为 NextJS
安装最新的 Chakra uinpm i @chakra-ui/react@2.0.0-next.3
如果您已更新到 React 18 并在 Next.js 应用程序中使用 custom server 设置,您也可能会收到此警告。
对于这种情况,此问题已在 PR 版本 12.1.7-canary.2
中得到解决。要在您的项目中修复它,只需更新到最新的金丝雀版本,或等待稳定的 v12.1.7
版本。
npm install next@canary