使用react-router-dom无效的反应重定向

时间:2017-12-07 03:06:18

标签: reactjs

我想在ajax响应之后重定向到主页我使用Redirect但没有工作

$.ajax({
    method: 'post',
    data: {req: data2},
    url: baseUrl+'sentOtp',
    success: function(response){
        console.log(response);
        if (response.status === "success") {
            return <Redirect to="/" />;
        }
    }
});

Route.js

ReactDOM.render(
 <Router>
  <Switch>
    <Route exact path="/" component={App} />
    <Route path="/pdeals/:BrandName/all/:Type" component={BrowseFeedDeals} />
    <Route path="/login" component={Register} />
  </Switch>
</Router>, document.getElementById('root'));
registerServiceWorker();

我使用react-router-dom和更新版本。但它没有将我重定向到主页并且在控制台中没有错误

1 个答案:

答案 0 :(得分:1)

你应该使用history.push。请参阅下面的示例:

<强> index.js

    import React, { Component } from 'react'
    import { render } from 'react-dom'
    import { Router, Route, BrowserHistory as hashHistory, Switch } from 'react-router-dom'
    import './style.css'
    import history from './history.js'

    import Home from './routes/home.js'

    class App extends Component {
      constructor() {
        super()
        this.state = {
        }
      }

      render() {
        return (
          <Router history={history}>
            <Switch>
              <Route exact path='/' component={Home}/>
            </Switch>
          </Router>
        )
      }
    }

render(<App />, document.getElementById('root'));

<强> history.js

import createHistory from 'history/createBrowserHistory'
export default createHistory()

<强>组件

import React from 'react'
import styled from 'styled-components'
import history from '../../history.js'


export default class NavBar extends React.Component {

  linkClick() {
    history.push('/')
  }

  render() {
    return <div onClick={this.linkClick}>
    </div>
  }
}