状態

2017-02-25 10 views
1
state = { 
    blog: { 
    name: 'abc', 
    score: 5 
    } 
} 


var { blog } = this.state 

を更新れる好ましい方法だ何、リアクト//あなたがやりたいblog.score = 5状態

1. blog = _.merge({}, blog, { 
    score: 3 
}) 


2. blog = { 
    ...blog, 
    score: 5 
    } 

3. blog = update(blog, { 
    $set: { 
     score: 5 
    } 
    } 

this.setState({blog}) 

私は他の方法があるかどうかわからないが、任意の好みがあるだろうこれらの上に?

かについて

state = { 
    site: { 
    blog: { 
     name: 'abc', 
     score: 5 
    } 
    } 
} 


site = _.merge({}, site, { 
    blog: { 
    score: 5 
    } 
}) 


site = update(site, { 
    blog: { 
    $set: { 
     score: 5 
    } 
    }) 


this.setState({site}) 

答えて

1

はすでに新しいものと以前の状態をマージするユーティリティを提供します。

let newState = React.addons.update(this.state, { 
    blog: { 
    score: { $set: 5} 
    } 
}); 
this.setState(newState); 

More details about this addon

0

_.mergeもっともらしい解決策ですが、推奨される方法はreact-addons-update以来https://github.com/kolodny/immutability-helperを用いることであろうレガシーアドオンがあるとみなされています。