Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

166
Views
¿Cómo navegar a la página de inicio al enviar el formulario en reaccionar web usando react-router-dom v6.2.1?

Tengo una página de clase de componente inteligente PhoneDirectory.js, donde he usado BrowserRouter y Route para enrutar a la página ShowSubscribers ("/") y la página AddSubscribers ("/add"). Mi requisito es redirigir a la página ShowSubscribers ("/") al enviar el formulario en la página AddSubscribers, pero no entiendo cómo implementarlo. Intenté usar this.props.history.push("/") pero no funciona. Soy nuevo en React, ¿alguien puede ayudarme?

 import React from 'react'; import AddSubscriber from './AddSubscriber'; import ShowSubscribers from './ShowSubscribers'; import {BrowserRouter , Route, Routes} from 'react-router-dom'; export default class PhoneDirectory extends React.Component{ constructor(){ super(); this.state = {[]}; } addSubscribers = (subscribers) =>{...} deleteSubscribers = (subscriberId) =>{...} render() { return ( <BrowserRouter> <Routes> <Route exact path='/' element={<ShowSubscribers deleteSubscribers={this.deleteSubscribers} subscribersList={this.state.subscribersList}/>}/> <Route exact path='/add' element={<AddSubscriber addSubscribers={this.addSubscribers}/>}/> </Routes> </BrowserRouter> ) } }

Página AddSubscriber del componente tonto

 import React from 'react'; import Header from './Header'; import './AddSubscriber.css'; import {Link} from "react-router-dom"; export default class AddSubscriber extends React.Component { constructor() { super(); this.state = { id: 0, name:'', phone:'' } } onChangeHandler = (event) =>{...} onFormSubmitted = (event) =>{ event.preventDefault(); this.props.addSubscribers(this.state); this.setState({id:0, name:"", phone:''}); // Need logic to redirect to "/" ie, ShowSubscribers page } render() { return (<div> <Header heading="Add Subscriber"/> <div className="component-body-container"> <Link to="/"> <button className="custom-btn">Back</button> </Link> <form className="subscriber-form" onSubmit={this.onFormSubmitted.bind(this)}> ............... <button type="submit" className="custom-btn add-btn">Add</button> </div> </form> </div> </div>)} }

Probé this.props.history.push("/"), pero no funcionó.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

react-router-dom v6 admite solo la versión de ganchos que sugiero, ya que usa el componente de clase para degradar la versión de react-router-dom en package.json.

 "dependencies": { ... "react-router-dom": "5.2.1", },

Ahora necesita ejecutar: npm install o yarn install Su componente de ruta se verá así

 import React from 'react'; import AddSubscriber from './AddSubscriber'; import ShowSubscribers from './ShowSubscribers'; import { Route, Switch, BrowserRouter as Router } from 'react-router-dom'; export default class PhoneDirectory extends React.Component{ constructor(){ super(); this.state = {[]}; } addSubscribers = (subscribers) =>{...} deleteSubscribers = (subscriberId) =>{...} render() { return ( <Router> <Switch> <Route exact path='/'> <ShowSubscribers {...your props goes here}/> </Route> <Route exact path='/add'> <AddSubscriber {...your props goes here}/> </Route> </Switch> </Router> ) } }

Ahora puede llamar a this.props.history.push

 import React from 'react'; import Header from './Header'; import './AddSubscriber.css'; export default class AddSubscriber extends React.Component { constructor() { super(); this.state = { id: 0, name:'', phone:'' } } onChangeHandler = (event) =>{...} onFormSubmitted = (event) =>{ event.preventDefault(); this.props.addSubscribers(this.state); this.setState({id:0, name:"", phone:''}); // Need logic to redirect to "/" ie, ShowSubscribers page } render() { return (<div> <Header heading="Add Subscriber"/> <div className="component-body-container"> <button className="custom-btn" onClick={()=>this.props.history.push('/')} >Back</button> <form className="subscriber-form" onSubmit={this.onFormSubmitted.bind(this)}> ............... <button type="submit" className="custom-btn add-btn">Add</button> </div> </form> </div> </div>)} }

about 4 years ago · Juan Pablo Isaza Report

0

Creo que necesita envolver su página AddSubscriber con withRouter HOC

 class AddSubscriber extends React.Component{ ...some-code.... } export default withRouter(AddSubscriber)
about 4 years ago · Juan Pablo Isaza Report

0

necesita lógica de navegación ( this.props.history.push("/") ) para ubicarse en una página de addScubscribers. (lo tienes en "página de inicio" en su lugar)

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!