Javascript react路由器dom的链接在firefox中不起作用

Javascript react路由器dom的链接在firefox中不起作用,javascript,reactjs,react-router,react-router-dom,Javascript,Reactjs,React Router,React Router Dom,我的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

我的
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
中的按钮,那么它在chrome和safari中工作正常,并将我重定向到
仪表板
页面,但它(Home.jsx中的这个按钮)在firefox中没有响应。我不会让它卡在firefox里吗?有人能帮我吗


提前感谢。

您可以使用传递给
路由的组件的
历史
道具,以编程方式更改url,而不是将
链接
放在
按钮

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>
    )
  }
}

我也遇到了同样的问题,并发现通过将
嵌套在
中,可以在Firefox中工作:

class Home扩展组件{
渲染(){
返回(
这是一个主页。
单击此处(仪表板)
)
}
}

您只需编写
。不需要额外的内联函数。如果您更改为该选项并临时删除
链接周围的
按钮
,它是否有效?是的,没有按钮,对我来说工作正常。但是在按钮里面它不工作。我刚试过。这意味着这不是路由的问题。这是按钮点击事件的问题。有没有办法手动调用
。手动我的意思是,我可以通过在某个函数中写入链接来调用该函数,并在单击按钮事件时调用该函数?顺便说一句,非常感谢@tholle如果我这样做,在加载主页本身时会抛出以下错误“`[显示/隐藏消息详细信息。]错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。检查
Route
的渲染方法```@ShravanJain那太令人沮丧了。太棒了,它对我有用。多谢各位。你让我开心。
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>
    )
  }
}
<Route path='/home' component={Home} />