Jeśli mam prosty komponent reagujący, który rejestruje liczbę kliknięć dla przycisku i po każdym kliknięciu rejestruje nowy stan historii bez zmiany adresu URL. Kiedy użytkownik kliknie, jak przywrócić stan do stanu, w jakim był?Jak odzyskać stan na przycisku Wstecz, reagując
Mogę to zrobić, jak to jest tutaj, używając natywnego obiektu historii JavaScript, ale nie powiedzie się, gdy użytkownik przejdzie z powrotem do pierwszego stanu iz powrotem z innego komponentu do ostatniego stanu tego.
Podejrzewam, że lepiej jest to zrobić za pomocą routera reagowania (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>
);
}
}
Historia przeglądarki kasy w routerze reagowania. –
Może [ta odpowiedź] (http://stackoverflow.com/questions/29442206/how-to-pass-both-this-state-and-this-props-to-routes-using-react-router) help. –
Możesz użyć localStorage dla swojego stanu. Dlaczego nie? –