【发布时间】:2017-10-14 19:31:21
【问题描述】:
我的网站使用Vulcan.js,默认情况下,它已将所有页面的规范网址设置为指向主页。现在我想将规范设置为指向每个页面的页面 url。
Vulcan 使用React Helmet 来制作头部标签,如果这对你有意义的话。它还使用React Router。
这是我拥有的当前代码:
import React, { PropTypes, Component } from 'react';
import Helmet from 'react-helmet';
import Header from './Header.jsx';
const canonical = window.location.href; // this don't work, says ReferenceError: window is not defined
const Layout = ({children}) =>
<div className="wrapper" id="wrapper">
<link rel="canonical" href={canonical} />
<Header/>
<div className="main">
{children}
</div>
</div>
export default Layout;
所以我得到的错误是:
ReferenceError:未定义窗口
我不是 React.js 的专家,所以我无法单独解决这个问题。但我认为对于比我更有经验的人来说,这很容易解决。
任何帮助将不胜感激。
【问题讨论】:
-
这段代码可以在服务器上运行吗?这是
window唯一未定义的地方。 -
来自
react-router的props包括一个location,我认为它可能会满足您的需求。看起来您需要根据these docs 包装父组件 -
@MichelFloyd 是的,我现在知道了。谢谢! :)
标签: javascript reactjs meteor react-router