Se si dispone di un componente di semplice risposta che registra un conteggio dei clic per un pulsante e su ciascun clic registra un nuovo stato della cronologia senza modificare l'URL. Quando l'utente fa clic su come ripristinare lo stato come era?Come ripristinare lo stato sul pulsante Indietro con reazione
Posso fare come è qui utilizzando l'oggetto di cronologia JavaScript nativo, ma non riesce quando l'utente passa nuovamente al primo stato e torna da un altro componente all'ultimo stato di questo.
Sospetto che sia meglio fare ciò utilizzando react-router (1.0)?
import React, { Component } from 'react';
export default class Foo extends Component {
state = {
clickCount: 0,
};
componentWillMount() {
window.onpopstate = (event) => {
if (event.state.clickCount) {
this.setState({ clickCount: event.state.clickCount });
}
};
}
onClick() {
const newClickCount = this.state.clickCount + 1;
const newState = { clickCount: newClickCount };
this.setState(newState);
history.pushState(newState, '');
}
render() {
return (
<div>
<button onClick={this.onClick.bind(this)}>Click me</button>
<div>Clicked {this.state.clickCount} times</div>
</div>
);
}
}
checkout cronologia del browser in react-router. –
Forse [questa risposta] (http://stackoverflow.com/questions/29442206/how-to-pass-both-this-state-and-this-props-to-routes-using-react-router) help. –
È possibile utilizzare localStorage per il proprio stato. Perchè no? –