我在我的react应用程序中使用react router v4和material ui。我想知道一旦点击GridList中的网格块
,如何更改URL。
我最初的想法是使用onTouchTap
的处理程序。然而,我能看到的重定向的唯一方法是使用组件重定向
或链接
。如何在不呈现这两个组件的情况下更改URL?
我尝试了this.context.router.push('/foo')
,但似乎不起作用。
反应路由器v4
有几件事我需要让它顺利运行。
auth工作流上的文档页面有很多需要的内容。
然而,我有三个问题
路由
组件道具
怎么办?我最终使用了:
注意:使用
render
方法,您必须明确地通过Route
组件的道具。出于性能原因(component
每次强制重新加载),您还希望使用render
而不是component
。
const App = (props) => (
<Route
path="/home"
render={routeProps => <MyComponent {...props} {...routeProps}>}
/>
)
const MyComponent = (props) => (
/**
* @link https://reacttraining.com/react-router/web/example/auth-workflow
* N.B. I use `props.history` instead of `history`
*/
<button onClick={() => {
fakeAuth.signout(() => props.history.push('/foo'))
}}>Sign out</button>
)
我发现的一个令人困惑的事情是,在相当多的React路由器v4文档中,他们使用
MyComponent=({匹配})
,即。对象破坏,这意味着最初我没有意识到路由
传递了三个道具,匹配
,位置
和历史
我认为这里的其他一些答案是假设一切都是通过JavaScript类完成的。
这里有一个例子,另外,如果您不需要传递任何
道具
,您可以使用组件
class App extends React.Component {
render () {
<Route
path="/home"
component={MyComponent}
/>
}
}
class MyComponent extends React.Component {
render () {
/**
* @link https://reacttraining.com/react-router/web/example/auth-workflow
* N.B. I use `props.history` instead of `history`
*/
<button onClick={() => {
this.fakeAuth.signout(() => this.props.history.push('/foo'))
}}>Sign out</button>
}
}
我用这个来重定向React路由器v4:
this.props.history.push('/foo');
试试这个,
this.props.router.push('/foo')
警告适用于v4之前的版本
和
this.props.history.push('/foo')
适用于v4及以上版本
问题内容: 如何在不重定向页面的情况下更改URL地址? 例如,当我单击下面的链接时: 我将从链接中获取URL: 如果我在下面这样做,页面将被重定向: 我想做一个类似此站点的操作,当您单击图像时,ajax调用将获取请求的页面,并且窗口上的URL地址也将被更改,因此它具有用于单击的路径。 问题答案: 注意:现在受支持-请参阅其他答案。 您 不能 更改整个URL而无需重定向,您可以做的是更改 hash
子域应在codefile中查找但未更改URL的任务。有可能吗? 我尽量 但它肯定会导致URL的变化,但我不需要它。
问题内容: 我想知道如何更改URL而不重定向,就像在我们的网站http://dekho.com.pk/ads-in- lahore 上那样, 当我们单击选项卡时url会更改,但是页面完全重新加载。在上还有其他问题,表明这是不可能的,但我想知道上述网站是如何实现的。谢谢 问题答案: 用途:
我正在使用JSF2和PrimeFaces。我如何编写selectOneMenu,当用户更改菜单中的选项时,调用JSF导航将用户重定向到同一个页面,但参数不同?我只需要换颜色。 来自网址: MyView。xhtml:(无工作) ManagedBean:
有可能是这样的深层链接吗我有这样的链接http://example.com/shortlink当它被打开到浏览器时,它将重定向到http://example.com/product?id=123然后在那里,我将打开我的应用程序,直接转到id为123的产品 我有这样的想法 [IntentFilter(新[]{Intent.ActionView}, Categories=new[]{Intent.Ca
问题内容: 我正在处理的应用程序包含各种状态(使用ui-router),其中某些状态要求您登录,而其他状态则公开可用。 我创建了一种方法,该方法可以有效地检查用户是否已登录,当前遇到的问题实际上是在必要时重定向到我们的登录页面。应该注意的是,登录页面当前未放置在AngularJS应用中。 console.log会正确显示预期的URL。之后的那一行,我几乎尝试了从$ window.open到wind