只更新state中對象中的某一項值
要用到Object.assign()方法
例子:
this.state = {
count: [
{ num: 0, title: "用戶總數", background: "#66ef66" },
{ num: 0, title: "商品總數", background: "#f9cb4a" },
{ num: 0, title: "訂單總數", background: "#f93232" }
]
}
想要更新count數組每一項中第一個對象中的num值
this.setState({
count:[
Object.assign({},this.state.count[0],{num:1}),
Object.assign({},this.state.count[1],{num:2}),
Object.assign({},this.state.count[2],{num:3})
]
})
setState中的回調
問題:
由於有時候setState是異步操作的,這就導致了,setState時獲取state值時有可能還沒更新。
例子:
this.state ={value:1}
this.setState({
value: 2
})
console.log(this.state.value) // 1
解決方案
setState的參數:setState(updater, [callback])
用setState的回調方法。
this.state ={value:1}
this.setState({
value: 2
}, () => {
console.log(this.state.value) //2
})
想看更多博客,請到本 博客
