Tener un tiempo difícil tratando de resolver esto.
tengo 2 componentes
Desde el componente 2, quiero volver al componente 1, pero ¿todavía tengo los filtros en su lugar?
¿Cómo puedo lograr esto?
He intentado
this.props.history.push('/1');
Vuelve atrás pero no guarda los filtros?
export default class FilterComponent extends React.Component { constructor(props) { super(props) this.state = {name:[]} } componentDidMount() { fetch("https://jsonplaceholder.typicode.com/todos") .then((response) => response.json()) .then( (data) => data.map(e => this.setState({name:[...this.state.name, e.id]}) )) } onTrigger = (event) => { this.props.parentCallback(event.target.value); event.preventDefault(); } render() { if(this.state.name.length < 1) { return ( <div> <p1> Loadings</p1> </div> ) } else { return ( <div className="contactfForm"> <select onChange={this.onTrigger}> <option> ID </option> {this.state.name.map((result)=>(<option title={result}>{result}</option>))} </select>Supongo que está procesando los filtros dos veces, dentro del componente 1 y nuevamente dentro del componente 2. Si desea navegar y conservar el estado, tiene dos opciones basadas en reacción y una JS:
MOVER FILTROS FUERA DEL CONMUTADOR DEL ROUTER
Si procesa los filtros fuera del Conmutador del enrutador, al cambiar la ruta solo se volverán a procesar el componente 1 y el componente 2, pero no los filtros.
ESTADO DE ALMACENAMIENTO DE FILTROS EN UN ESTADO GLOBAL
Si no es factible renderizar los filtros fuera del conmutador de su enrutador (porque tal vez los filtros no se rendericen en todas las páginas de su aplicación), puede guardar el estado del filtro en un estado global (usando, por ejemplo, React Contexts, consulte https:/ /reactjs.org/docs/context.html; o Redux).
Si usa React Contexts, puede crear el proveedor fuera del enrutador y dentro del componente Filters recuperar y modificar sus valores. De esta forma mantendrás el estado entre los componentes.
GUARDAR ESTADO DE FILTRO EN ALMACENAMIENTO LOCAL
Si desea conservar el estado también al actualizar la página, puede almacenar el estado del filtro en el almacenamiento local del navegador. Cada vez que se represente el componente Filtros, recuperará el valor del almacenamiento local y cada vez que se modifiquen los filtros, lo guardará. Eso también hará que al cambiar de página, al mantenerse el Local Storage, también se mantenga el estado del filtro.