希望这是一个非常简单的问题:
我想创建一个包含我网站页面的完整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/)
首先,请记住您的代码在客户端和服务器上运行,因此任何对窗口的访问都需要包含在检查中.
原文链接:https://www.f2er.com/react/300657.htmlif (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.