我正在尝试使用 next.js 转换我现有的反应应用程序。这是正确的做法吗?

Posted

技术标签:

【中文标题】我正在尝试使用 next.js 转换我现有的反应应用程序。这是正确的做法吗?【英文标题】:I am trying to convert my existing react app with next.js. Is it a right thing to do? 【发布时间】:2021-01-05 08:59:02 【问题描述】:

我们已经使用 firebase auth 和 solr DB 在 react-redux 中创建了项目。

下面是我们应用的当前文件夹结构。

--src
    --actions
    --assets
    --components
    --controllers
    --firebase
    --reducers
    --utils
    --app.js

现在,为了将应用程序转换为下一个 js,我在依赖项中添加了下一个 js,并将脚本更改如下

 "scripts": 
    "dev": "next dev",
    "build": "next build",
    "start": "next start"
  ,

现在,我在 "src" 文件夹中创建了目录 "pages" 并添加了 "index.js" hello world react 程序来测试下一个 js,它通过运行脚本 "npm run dev" 来工作

所以,我将所有文件夹从“controllers”复制到“pages”文件夹并尝试访问静态页面“about”

在这里,我遇到了错误,

有时会出现这个错误:

Firebase:名为“[DEFAULT]”的 Firebase 应用已存在 (app/duplicate-app)。

重新加载一段时间后在同一页面上出现此错误:

FirebaseError: projectId 必须是 FirebaseApp.options 中的字符串

What other things to do more to convert existing react app to next.js?

【问题讨论】:

使用 NextJs 示例模板。他们为每一种可能的技术提供了示例 【参考方案1】:

我在 Next.js 和 React Native 中多次看到这个 firebase 错误。我认为它与渲染或其他东西有关,但这里是解决方案:

firebase.js


import firebase from 'firebase/app';
import 'firebase/firestore';
import 'firebase/auth';

let config = 
  // your config
;

export default !firebase.apps.length
  ? firebase.initializeApp(config)
  : firebase.app();

【讨论】:

以上是关于我正在尝试使用 next.js 转换我现有的反应应用程序。这是正确的做法吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 next.js 的反应路由器

简单的反应错误:不能在 Next.js 中使用 @material-ui/picker 库

Next Js API:使用 s-s-r 反应页面的响应

在页面加载时将道具传递给子组件 - 与 next.js 做出反应

使用 @EnableResourceServer 支持 Spring Boot 反应式 (webflux)

在开发模式 localhost 中从 Next.js 应用程序请求在不同端口上运行的 Graphql api