使用react 16,react-router 4。
我的域应该是“ https://www.xyz.c”。我有一个定位标记,该标记应重定向到“ https://www.xyz.c/some-path”,而无需重新加载页面。
<NavLink>
和<Link>
和to="/some-path"
来实现它。但是,我需要完整的URL才能在DOM中显示(为什么?恩,在侧面说明中,我正在将itemProp用于要在锚标签中包含完整路径的架构)<a>
和props.history
标签来实现它,如下所示,导致再次替换为相对网址,即它在网址中成为https://www.xyz.c/https://www.xyz.c/some-path
。<a data-url="https://www.xyz.c/some-path" onClick={this.onClick}>Label</a>
onClick = e => {
e.preventDefault();
this.props.history.push(urlFromDataSet);
}
对于<Navlink>
,<Link>
或<a> + props.history
来说这似乎是不可能的,因为政策是history.replace, or history.push
可以用于具有相同来源的网址。我的网址也来自同一网址,但是,我在href中给出了完整路径。
但是,facebook在其标题中实现了相同的功能(通过转到首页检查FB,完全加载,然后单击标题中的个人资料按钮。它不会重新加载页。)
我们该怎么做?
答案 0 :(得分:1)
您已经一半了,可以使用(?<=)
API来获取URL
属性的路径名,然后将其推送。
data-url
有关URL API的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/URL