Реализовать If / Else для переключателей в onClick — React JS

#reactjs #forms #conditional-statements

#reactjs #формы #условные операторы

Вопрос:

Я новичок в React, и я хочу реализовать логические условия в моем переключателе в событии onClick, у меня есть 3 маршрута. Если я выберу математику, направьте ее на Math.js после его отправки. Если я выберу английский, перенаправьте его на English.js после его отправки. Если я выберу Science, направьте его в Science.js после его отправки.

     import React, { useEffect } from 'react'
    import { useForm } from "react-hook-form";
    
    function Login() {
    
        const { register, handleSubmit, setValue} = useForm();
    
        const onSubmit = (data, event) => {
            event.target.reset();
            console.log(data)
        }
    
        useEffect(() => {
            register({name: "subject"});
            register({name: "firstname"});
            register({name: "lastname"});
        }, [register]);
    
        return (
            <div>
                <form onSubmit={handleSubmit(onSubmit)}>
                    <br />
                    <label>
                        <input type="radio" value="english" name="subject" onChange={e => setValue("subject", e.target.value)} />
                        english
                    </label>
                    <label>
                        <input type="radio" value="math" name="subject" onChange={e => setValue("subject", e.target.value)} />
                        math
                    </label>
                    <label>
                        <input type="radio" value="science" name="subject" onChange={e => setValue("subject", e.target.value)} />
                        science
                    </label>
                    <br />
                    <br />
                    <label>
                        First Name:
                        <input type="text" name="firstname" onChange={e => setValue("firstname", e.target.value)} />
                    </label>
                    <br />
                    <label>
                        Last Name:
                        <input type="text" name="lastname" onChange={e => setValue("lastname", e.target.value)} />
                    </label>
                    <br />
                    <input type="submit" value="Submit" onClick={handleSubmit} />
                </form>
            </div>
        )
    }

export default Login
  

Я хочу перенаправить на выбранный мной переключатель.

 import React, { Component } from 'react';
import './App.css';
import { Router, Switch, Route } from 'react-router-dom';
import { history } from './helper';
import Login from './components/Login';
import English from './components/English';
import Math from './components/Math';
import Science from './components/Science';

class App extends Component {
  render() {
    return(
      <Router history={history}>
        <div className="App">
            <Switch>
              <Route path="/" exact component={Login} />
              <Route path="/math" component={Math} />
              <Route path="/science" component={Science} />
              <Route path="/english" component={English} />
            </Switch>
        </div>
      </Router>
    )

  }
}

export default App;
  

Комментарии:

1. Вы имеете в виду, что если пользователь выберет переключатель «Английский», то форма будет отправлена на «/ english», когда пользователь нажмет на кнопку «отправить»?

2. @TheKNVB Да, если пользователь выберет «Английский», он будет отправлен / перенаправлен на «/ english» после нажатия кнопки отправки