Last active
April 26, 2022 15:37
-
-
Save verticalgrain/195468e69f2ac88f3d9573d285b09764 to your computer and use it in GitHub Desktop.
React Router V4 Redirect after form submission
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React, { Component } from 'react' | |
import { Redirect } from 'react-router' | |
export default class ContactForm extends Component { | |
constructor () { | |
super(); | |
this.state = { | |
fireRedirect: false | |
} | |
} | |
submitForm = (e) => { | |
e.preventDefault() | |
this.setState({ fireRedirect: true }) | |
} | |
render () { | |
const { from } = this.props.location.state || '/' | |
const { fireRedirect } = this.state | |
return ( | |
<div> | |
<form onSubmit={this.submitForm}> | |
<button type="submit">Submit</button> | |
</form> | |
{fireRedirect && ( | |
<Redirect to={from || '/thank-you'}/> | |
)} | |
</div> | |
) | |
} | |
} |
@verticalgrain thank you so much.much applauded.
verticalgrain@ thanks a lot it saved my day
Thanks! Very clean solution!
Thank you!!!!
I think this is another solution. Since there are there elemnet that router provides which are match, location adn history, we may push any route to history. considering rerouting after submiting a form:
{history} = this.props <button onClick={this.onFormSubmit(formValues, history)} )> Submit <button/> ( onFormSubmit(formValues, history) { database.post(formValues) (some codes) history.push('/') } )
nice one
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
thank you :)