我已使用此(react router 2.0)在路由器上设置了browserHistory:
import { browserHistory } from 'react-router'
function requireAuth(nextState, replace) {
if (!services.auth.loggedIn()) {
replace({
pathname: '/login',
state: { nextPathname: nextState.location.pathname }
})
}
}
export default (store) => (
<Router history={browserHistory}>
<Route path='/' component={AppLayout}>
<Route path="login" component={LoginContainer} />
<Route path="map" component={MapContainer} onEnter={requireAuth} />
</Route>
</Router>
);
然后,我尝试使用react router中的browserHistory以编程方式从视图(ala:
import { browserHistory } from 'react-router'
...
browserHistory.push('/map');
这将URL更改为 /map但不会呈现该路由中的组件。我做错了什么?
另一种解决方案是使用上下文路由器,它允许路由器导航到应用程序的另一个部分,而无需通过生命周期方法强制更新。您只需在组件中声明contextType(为简洁起见,省略路由器实例化和其他代码):
class MyComp extends Component {
static contextTypes = {
router: PropTypes.object
}
handleClick = () => {
this.context.router.push('/other/route')
}
}
出于我不知道的原因,BrowserHistory.push()对我不起作用,尽管BrowserHistory.goBack()和. goForward()起作用了。
正如我在评论中提到的,我也遇到了同样的问题,但我已经找到了一种方法让它发挥作用。
这里发生的是您的路由正在更改,但您的AppLayout组件实际上并没有自动更新其状态。路由器似乎不会自动强制对组件进行状态更改。基本上,AppLayout上的this.state.children
不会使用新的子项进行更新。
我发现的解决方案(而且,完全公开,我不知道这是你应该如何实现这一点,还是它的最佳实践)是使用组件WillReceiveProps
函数并与孩子一起更新this.state.children
从新道具:
componentWillReceiveProps(nextProps) {
this.setState({
children: nextProps.children
});
}
希望这有帮助!
在TS文件中 用户详细信息应为 在管理组件中 我的问题是,当单击时,我不会被重定向到页面,但当我从url栏导航到/userdails时,我会看到组件
Iam正在使用ionic应用程序编辑配置文件和查看配置文件。编辑编辑页面的详细信息后,它将导航到查看配置文件页面。 我希望在导航后刷新查看配置文件页面。 这是editprofile.ts代码: 首先我用下面的导航 通过谷歌搜索,我添加了这个来在导航后刷新视图配置文件 现在发生的是,首先它被重定向到查看个人资料页面,并且没有刷新,它直接重定向到主页,主页被刷新。 请帮助我如何在从“编辑配置文件”页面
我有两个页面:home.jsp和stylechoosertable.jsp。jsp有一个指向stylechoosertable.jsp的简单链接。两者都在src-main-webapp-views中。启动应用程序运行良好,加载home.jsp也很好。然而,当我点击链接时,它会转到一个404未找到的页面。 下面是HomeController.java > 仅本地:8080/MySpringMVC/打
问题内容: 我有以下代码: 后者需要通过单击缩略图来导航以下HTML(当然是简化的),该缩略图指向一个新页面,然后需要单击该新页面中的链接: 但是我的代码吐出了以下错误: 问题似乎是该元素未使用新页面的内容进行更新。更换有问题的生产线的使用也不起作用。我究竟做错了什么? 请注意,我必须能够对所有缩略图执行此操作(因此需要循环)。 问题答案: 原来,您需要预先存储要导航的链接。这就是最终对我有用的东
问题似乎是没有用新页面的内容更新元素。将问题行的替换为也不起作用。我做错了什么? 请注意,我必须能够对所有缩略图执行此操作(因此使用循环)。
问题内容: 我已经使用facelets模板完成了一个基本的JSF应用程序。我的模板如下: 然后,我有一个 主页 (如下所示),它导航到 第二页 。两个页面都使用上面的模板。 如果我在faces-config.xml中使用它,它将进行导航,但是将重新加载 整个 页面。我的问题是: 有没有一种方法可以从页面导航到另一个仅更新模板部分的内容?(同时保留页面的其余部分不变) 谢谢! 问题答案: 您可以通过