setState 回调替代方案

在脚手架中发现 setState 禁用了回调的使用。因为目前发现使用 setState 第二个参数的场景是想用 setState 更新状态后的值。

class App extenes React.Component {
countName = () => {
if (this.state.name === "xxx") {
this.setState({
count: this.state.count + 1
})
}
}
handle = name => {
this.setState(
{
name
},
this.countName
)
}
}

回调的方式会造成多余一次渲染, 可改为传参的方式代替回调的方式。

class App extenes React.Component {
countName = (name) => {
if (name === "xxx") {
this.setState({ // 2
count: this.state.count + 1
})
}
}
handle = name => {
this.countName(name)
this.setState({
name
})
}
}