【问题标题】:Accessing the URL hostname from React JS从 React JS 访问 URL 主机名
【发布时间】:2016-05-19 18:05:18
【问题描述】:

我正在尝试访问 URL 子域。传统上我会在 JavaScript 中做

var full = window.location.host;
var parts = full.split('.');
var subdomain = parts[0];
// ...

但是我从 React JS 组件调用它,我收到以下错误 -

Encountered error "TypeError: undefined is not an object (evaluating 'window.location.host')"

似乎window.location.host 在 React 中不起作用?它不能访问窗口吗?

我知道不这样做可能有哲学上的原因,但如果 R​​eact 可能的话,我仍然很好奇如何实现它。

谢谢!

【问题讨论】:

  • 这段代码是否在浏览器中运行?还是它可能以某种同构渲染模式在 nodejs 中运行?
  • 所以它是一个更大的 Rails 应用程序的一部分。 react 组件是从调用 JSX 的视图中渲染出来的。我想虽然所有这些都是在服务器端编译的,但最终的反应代码在客户端浏览器的上下文中运行?
  • 我们必须查看您的具体设置,但我猜想在没有窗口和窗口对象的后端评估带有 window.location 的这条线。
  • 是的,我认为你是对的,从错误和它返回“未定义”的事实来看:(

标签: javascript reactjs


【解决方案1】:

这是同构的,所以如果它正在服务器端进行处理,那么您将无法访问 window.location.href

对于服务器端,您需要查看底层请求对象以获取主机名:

http://expressjs.com/en/api.html#req.hostname

【讨论】:

    猜你喜欢
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多