Как перенаправить на другую страницу в ReactJS при выполнении условия IF? - PullRequest
0 голосов
/ 14 мая 2018

Я хочу перенаправить на Dashboard.jsx, если имя пользователя и пароль совпадают.Как это сделать ?Я новичок в ReactJS.

в условии If, я хочу добавить код перенаправления, чтобы перенаправить другую страницу.Просьба ответить.В стековом потоке максимум используют без условия if, поэтому здесь есть разница.

var users={
name:'bddebashis',
password:'debashis111249'
}

class Home extends Component {


constructor() {
    super();
    this.handleSubmit = this.handleSubmit.bind(this);
}


 handleSubmit(event) {
    event.preventDefault();
    const data = new FormData(event.target);

    fetch('/api/form-submit-url', {
        method: 'POST',
        body: data,
    });

    if(data.get('usr')==users.name && data.get('paswd')==users.password){
      <Redirect to='./Dashboard';/>

    }
  }

Ответы [ 4 ]

0 голосов
/ 14 мая 2018
import createHistory from 'history/createBrowserHistory';
export const history = createHistory();

<Router history={history}>
   <Route />

   <Router>

В вас компонент Dashboard история импорта в приборной панели используйте эту строку для перенаправления

history.push('/Dashboard');
0 голосов
/ 14 мая 2018
// Are You using BrowserRouter means you can use like this

import PropTypes from 'prop-types';

var users={
    name:'bddebashis',
    password:'debashis111249'
    }

    class Home extends Component {


    constructor() {
        super();
        this.handleSubmit = this.handleSubmit.bind(this);
    }

    static contextTypes = {
        router: PropTypes.object,
      }

     handleSubmit(event) {
        event.preventDefault();
        const data = new FormData(event.target);

        fetch('/api/form-submit-url', {
            method: 'POST',
            body: data,
        });

        if(data.get('usr')==users.name && data.get('paswd')==users.password){
          this.context.router.history.push("/Dashboard")  
        }
      }
    }
0 голосов
/ 14 мая 2018

Redirect упрощает использование модуля history.Установите модуль истории npm install history, затем настройте добавленный маршрутизатор следующим образом. AppRouter.js

import { Router, Route, Switch } from 'react-router-dom';
import createHistory from 'history/createBrowserHistory';
export const history = createHistory();

<Router history={history}>
   <Route path="/about" component={AboutPage} />
   <Route ... />
   ...
<Router>

, а затем перенаправить на другой компонент. Подобно

import {history} from './AppRouter';

history.push('/dashboard');
0 голосов
/ 14 мая 2018

Если вы используете React Router, вы можете использовать компонент Redirect

https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/Redirect.md

 <Redirect to="/dashboard" />

Добавление компонента Redirect внутри вашей функции рендеринга должно быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...