reactjs – React-redux获取站点基础URL / window.location

希望这是一个非常简单的问题:

我想创建一个包含我网站页面的完整URL的字符串,例如:

https://example.com/documents/1

理想情况下,我想在mapStatetoProps()中的react-redux connect() – ed容器中生成它.如果页面是使用browserHistory的react-router Route的孙子(那么也许我可以从react-router或browserHistory以某种方式获取它?)如果有必要,我会在一个完整的React类中完成它.

但我不能为我的生活找到如何做到这一点. window(在window.location中)总是在mapStatetoProps()中没有定义(在那里没什么大不了的),在我的视图组件的render()函数中.

到目前为止,我只找到了访问当前路线的方法,例如: “/ documents / 1”,这只是一个相对路径,不包含站点基本URL(https://example.com/)

首先,请记住您的代码在客户端和服务器上运行,因此任何对窗口的访问都需要包含在检查中.
if (typeof window !== 'undefined') {
    var path = location.protocol + '//' + location.host + '/someting'; // (or whatever)
  } else {
    // work out what you want to do server-side...
  }

如果您生成的URL显示在DOM中,并且在客户端上,您在第一次呈现之前使用此URL填充商店,那么您将收到校验和错误.如果您真的想避免错误,可以等到根组件中的componentDidMount()来获取/设置url.

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...