gpt4 book ai didi

javascript - react-router-dom 的链接在 firefox 中不起作用

转载 作者:行者123 更新时间:2023-11-29 17:43:20 25 4
gpt4 key购买 nike

我的 routes.js 文件中有以下代码

import React, { Component } from 'react'
import { BrowserRouter as Router, Route, Switch, Redirect } from 'react-router-dom'
import Home from './components/home/Home.jsx'
import Dashboard from './components/dashboard/Dashboard.jsx'
import { browserHistory } from 'react-router'

class Routes extends Component {
render () {
return (
<Router history={browserHistory}>
<div>
<Switch>
<Route path='/home' component={() => (<Home />)} />
<Route path='/dashboard' component={() => (<Dashboard />)} />
<Redirect to={{pathname: '/home'}} />
</Switch>
</div>
</Router>
)
}
}

export default Routes

下面是我的Home.jsx

import React, { Component } from 'react'
import {Link} from 'react-router-dom'

class Home extends Component {
render () {
return (
<div>
<h1>This is a home page.</h1>
<button>
<Link to='/dashboard'>Click here (Dashboard)</Link>
</button>
</div>
)
}
}

export default Home

但是,如果我单击 Home.jsx 中的按钮,那么它在 chrome 和 safari 中工作正常,并将我重定向到 Dashboard 页面,但它(这``Home.jsx` 中的按钮)在 Firefox 中没有响应。而且我不明白它会卡在 Firefox 中吗?那么有人可以帮我解决这个问题吗?

提前致谢。

最佳答案

您可以使用传递给组件的 history 属性以编程方式更改 url,而不是将 Link 放在 button 中给 Route

class Home extends Component {
handleClick = () => {
this.props.history.push('/dashboard');
};

render () {
return (
<div>
<h1>This is a home page.</h1>
<button onClick={this.handleClick}>
Click here (Dashboard)
</button>
</div>
)
}
}

确保 Home 组件被赋予 route props ,您必须直接在 Routecomponent 属性中使用该组件。

<Route path='/home' component={Home} />

关于javascript - react-router-dom 的链接在 firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51665178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com