首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-snap和react-router一起出现问题

react-snap和react-router一起出现问题
EN

Stack Overflow用户
提问于 2018-11-11 21:13:56
回答 2查看 6.1K关注 0票数 6

我需要启动一个react应用程序,我需要预渲染和路由,所以我安装了react-snap和react-router。(使用react-router进行路由,并使用react-snap进行预渲染)。

使用'npm start‘在本地看起来一切正常,但是当我做了一个产品构建并为它提供服务时,路由链接使页面重定向到一个新的url,所以我看到的总是主页。

我的渲染看起来像这样:

代码语言:javascript
复制
 render() {
    return (
      <Router>
        <React.Fragment>
          <MainNav/>
          <Route exact path="/" component={Home}/>
          <Route path="/greeting/:name/:surname" render={(props) => <Greetings text="Hello, " {...props} />} />
          <Route path="/About" component={About}/>
        </React.Fragment>
      </Router>
    );
  }

这是react-snap建议的index.js

代码语言:javascript
复制
import React from 'react';
import { hydrate, render } from "react-dom";
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';

const rootElement = document.getElementById("root");
if (rootElement.hasChildNodes()) {
  hydrate(<App />, rootElement);
} else {
  render(<App />, rootElement);
}

serviceWorker.unregister();

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2018-11-28 05:55:25

通过将以下代码片段添加到我的package.json中,我已经能够解决类似的问题

代码语言:javascript
复制
"reactSnap": {
  "fixWebpackChunksIssue": false
}

有关更多信息和其他选项,请查看以下链接

https://github.com/stereobooster/react-snap/issues/264

票数 2
EN

Stack Overflow用户

发布于 2018-11-28 05:28:14

我已经和这个问题斗争了几个星期了。我注意到的主要事情是,如果我在index.js中调用registerServiceWorker(),应用程序在构建后将正常工作。如果我注释掉这一行,无论发生什么,应用程序只会路由到'/‘。

您似乎正在注销index.js中的服务工作者,这可能会导致问题。

我遇到的一个难题是,如果我在index.js中使用registerServiceWorker()调用,react-snap不会正确地预渲染所有的路由,如果我注释掉了registerServiceWorker()行,react-snap会完美地预渲染所有的路由,但是应用程序不能导航。

同样值得注意的是,我的项目是使用'create-react-app‘创建的,并且没有被弹出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53249090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档