【发布时间】:2019-01-10 21:46:56
【问题描述】:
我的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中?那么有人可以帮我吗?
提前致谢。
【问题讨论】:
-
你可以写
<Route path='/home' component={Home} />。不需要额外的内联函数。如果您更改为它并暂时删除Link周围的button,它是否有效? -
是的,没有按钮它对我来说工作正常。但是在按钮内部它不起作用。我刚试过。这意味着这不是路由的问题。这是按钮单击事件的问题。有什么方法可以手动调用
<Link />。 -
手动我的意思是我可以通过在某个函数中写入链接来调用链接并在按钮的单击事件中调用该函数吗?
-
顺便说一句,非常感谢@Tholle
标签: javascript reactjs react-router react-router-dom