Я в тупике. У меня есть фиктивный компонент, который условно отображает три формы (я использую formik). Примерно так:
const SignUp = ({values, touch, errors}) => {
... set conditions to render the 3 Forms...
return(
<div>
<Form1 {complete ? onClick={go to form 2}} /> or
<Form2 {complete ? onClick={go to form 3}}> /> or
<Form3>
<div>
)
}
Теперь эти формы должны быть зарегистрированы в истории браузера, чтобы пользователь мог вернуться к одной из форм, если он захочет. Это routes/index.js
import React from 'react';
import { BrowserRouter, Route, Switch, Redirect } from 'react-router-dom';
import Main from '../pages/main/main';
import How from '../pages/how/how';
import SignUp from '../pages/signup/signup';
const Routes = () => (
<BrowserRouter>
<div className="wrapper">
<Switch>
<Route exact path="/" render={() => <Redirect to="/index/acceuil"/>}/>
<Route path="/index/acceuil" render={props => <Main {...props} />}/>
<Route path="/index/how" render={props => <How {...props} />}/>
<Route path="/user/signup/" render={props => <SignUp {...props}/>} />
<Route component={Error}/>
</Switch>
</div>
</BrowserRouter>
);
//exporting to App.js
export default Routes;
и кнопка перехода на страницу регистрации на главной странице:
<NavLink to="/user/signup" className='signup orange-btn'>SIGN UP</NavLink>
В идеале мне нужно добавить параметр запроса, чтобы история браузера сохраняла его, и если пользователь вернется на страницу, он не будет просто вообще отказаться от регистрации. Однако я понятия не имею, как сделать это (за исключением всего location.pathname
) с React-Router, я должен даже сделать это с React Router? Или есть лучший способ?