コンポーネントの状態を元に戻したい場合は巻き戻すために親コンポーネントに格納する必要があります。現在、バニラの反応では、コンポーネントの内部状態を他のどこかで追跡しないで巻き戻す方法はありません。
はそうあなたが見ることができるよう、私たちは親コンポーネントの状態を保存する必要があると私たちは子供を経由して制御することができインデックス経由でアクセスしたいあなたは、以下のコンポーネント
class ParentComponent extends React.Component {
getInitialState() {
return({
stateHistory: [
{ name: "foo" },
{ name: "bar" }
{ name: "baz" }
],
stateHistoryIndex: 0
})
},
onRewind() {
this.setState({
stateHistoryIndex: this.state.stateHistoryIndex += 1
});
},
render() {
return(
<div>
<ChildComponent
data={this.state.stateHistory[this.state.stateHistoryIndex]}
handleRewind={this.onRewind}
/>
</div>
)
}
}
class ChildComponent extends React.Component {
render() {
return(
<div>
Hi, my name is {this.props.data.name}
<button onClick={() => this.props.handleRewind()}>Rewind</button>
</div>
)
}
}
を持って言うことができます。