我有以下路线:
<Route path="/cases" component={Cases} />
此路由处理以下示例路径
/cases
/cases/1
我在这条路线上有一个iframe,负责处理所有用户互动。在iframe中更改位置后,iframe会在父窗口中发布一条消息,通知其网址已更改。
我希望能够在父窗口中更改路线而无需重新呈现iframe。
这是我目前的解决方案
this.props.history.replace(pathnameFromIframe);
shouldComponentUpdate = () => {
return false;
}
此解决方案有效,但与React文档相反:
shouldComponentUpdate ...方法仅作为性能存在 优化。不要依靠它来“阻止”渲染,因为这样可以 导致错误。
https://reactjs.org/docs/react-component.html#shouldcomponentupdate
我可以通过其他方式解决吗?
是否可以在不将路线作为道具添加到组件的情况下更改路线?这将解决我认为的问题。
答案 0 :(得分:0)
我认为hashHistory您需要什么?如果我没记错的话
import { hashHistory } from 'react-router';
hashHistory.push({
pathname:"/url-url",
});