私は自分のチェックボックスの値を自分の反応アプリのlocalstorageに保存しようとしています。しかし、私が保管するたびに、以前の状態を保存します。以下は私のコードです:反応のためにローカルストレージに状態を保存する方法は?
ためのサイドレンダリング:のonchange方法について
render() {
return (
<Checkbox
checked={this.state.checkedCheckpoint}
onChange={() => this.onChange('checkpoint')}
>
</Checkbox>
)
を:私は前の状態により何を意味
onChange (value){
const { checkedCheckpoint } = this.state
if (value === 'checkpoint')
{
if (checkedCheckpoint)
{
this.setState({checkedCheckpoint : false})
console.log(checkedCheckpoint)
}
else
{
this.setState({checkedCheckpoint : true})
console.log(checkedCheckpoint)
}
}
localStorage.setObject('checkedCheckpoint', checkedCheckpoint)
は次のとおりです。 私は真実であると私のチェックポイントを初期化する場合は、私がチェックを外した後、私はcheckpoint: false
の権利を得なければなりませんか?しかし、私はcheckedCheckpoint: true
を得ます。私がそれを確認したら、checkedCheckpoint: true
を正しく取得する必要がありますか?私はcheckedCheckpoint: false
を得るでしょう。ローカルストレージの前の状態に常に従うように見えます。誰が何が間違っているか知っていますか?あなたはあなたがthis.setState(2番目argrumentとしてポスト状態変化を実行するために好きなロジック渡す必要があり、古いもの
onChange (value){
const { checkedCheckpoint } = this.state
if (value === 'checkpoint')
{
if (checkedCheckpoint)
{
this.setState({checkedCheckpoint : false})
localStorage.setObject('checkedCheckpoint', false)
console.log(checkedCheckpoint)
}
else
{
this.setState({checkedCheckpoint : true})
localStorage.setObject('checkedCheckpoint', true)
console.log(checkedCheckpoint)
}
}
'localStorage.setObject( 'checkedCheckpoint'、this.state.checkedCheckpoint)' –