鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ 關(guān)于React里面this.state和this.setState的一個(gè)小問題

關(guān)于React里面this.state和this.setState的一個(gè)小問題

constructor(props) {
    super(props);
    this.state = this.getTime();
}
setTimer() {
    clearTimeout(this.timeout);
    this.timeout = setTimeout(this.updateClock.bind(this), 1000);
}

updateClock() {
    this.setState(this.getTime, this.setTimer);
}

就是看到有人這樣設(shè)置更新state,有點(diǎn)看不明白,有人可以點(diǎn)撥一下嗎?

回答
編輯回答
青黛色

看一下setState的函數(shù)簽名吧。

setState的第一個(gè)參數(shù)可以是一個(gè)partialState或者函數(shù),如果是函數(shù)則是一個(gè)接受previousState的函數(shù)。

setState的第二個(gè)參數(shù)是callback

this.getTime你沒有寫定義,但肯定是一個(gè)接受state的函數(shù).也許是這樣的?

const getTime = state => Object.assign(...state, ...{a: 1}) //

所以你的代碼意思就是 *將當(dāng)前state交給getTime處理返回的對(duì)象作為新的state,
然后調(diào)用setTime*

2017年1月21日 05:43