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})
答案 0 :(得分:1)
reactjs已经提供了将先前状态与新状态合并的实用程序。
let newState = React.addons.update(this.state, {
blog: {
score: { $set: 5}
}
});
this.setState(newState);
答案 1 :(得分:0)
_.merge
是一种合理的解决方案,但推荐的方法是使用https://github.com/kolodny/immutability-helper,因为react-addons-update
被视为传统附加组件。