我现在需要先赋值,再执行方法,类似原来的setState({}, ()=>{}),请问正规的写法是什么?
我现在需要先赋值,再执行方法,类似原来的setState({}, ()=>{}),请问正规的写法是什么?
const handleClick = () => {
fetch('something').then(data => {
setSomething(data.something)
})
}
useEffect(() => {
console.log(">>>", something)
}, [something])
这是最简单直接的。
逻辑上this.setState的第二个参数,可能是因为这种情况
//
someFunc() {
// 需要用到this.state.name
}
handleChange() {
this.setState({name: 'rose'})
this.someFunc()
}
someFunc可能无法使用到正确的name,才需要转换成setState的callback中调用。那从逻辑上说someFunc是依赖name的正确值执行争取的逻辑,那么someFunc应该耦合name的值,而不是this.state.name。所以还可以从设计上让someFunc接受一个参数:
//
someFunc(name) {
// 依赖传进来的name执行逻辑
// 实在不行还可以兜底
name = name === undefined ? this.state.name : name
}
handleChange() {
let name= 'rose'
this.setState({name})
this.someFunc(name)
}
4 回答1.6k 阅读
2 回答991 阅读✓ 已解决
2 回答2.5k 阅读
1 回答880 阅读✓ 已解决
1 回答630 阅读✓ 已解决
2 回答772 阅读✓ 已解决
2 回答921 阅读
其实不太明白这种情况使用场景
你既然都知道要set的值是什么了 为什么还要等他赋值完成再进行后续操作呢