服务器端渲染中的React-router和Link

时间:2018-05-16 17:52:44

标签: reactjs react-router isomorphic-javascript

我正在将一个反应应用程序转换为服务器端。

我有这样的事情: import React from 'react' import R, { Link } from 'react-router' console.log("router:", R) // R is undefined! class C1 extends React.Component { render () { return (<Link to="/somewhere">somewhere</Link>) } }

以前工作,但现在服务器上未定义react-router。我安装了它:npm install --save react-router,版本^ 4.2.0。

如何让链接与服务器端和客户端一起工作?我知道我可以这样做:import { NavLink } from 'react-router-dom'并使用NavLink而不是Link。但是,这会导致每次点击链接时都会进行服务器端调用。我希望客户端的反应可能是使用pushstate而不是在初始加载后引用服务器。

1 个答案:

答案 0 :(得分:0)

尝试添加到npm npm install -g react-router-dom然后import { BrowserRouter, Link, Route, Router, Switch} from 'react-router-dom';

代码将是:

import React from 'react';
import { BrowserRouter, Link, Route, Router, Switch} from 'react-router-dom';

<BrowserRouter>
  <Link to='/' >Home</Link>
  <switch>
    <Route path='/' exact render={(props) => <`your component` />}>
  </switch>
</BrowserRouter>