setStateで設定した値はReactで更新が走らないとすぐには反映されない
なので以下のようにしても必要な値が手に入らない
const [isVisible, setIsVisible] = useState(true);
const func = () => {
setIsVisible(false)
console.log(isVisivle)
}
以下のように更新を検知すればできるがよろしくはない
const [isVisible, setIsVisible] = useState(true);
useEffect(() => {
console.log('ステートが更新された。');
}, [isVisible]);
クラスコンポーネントではコールバックを渡して確実な変更した値を使用することが出来た
this.setState({
isVisible: true
}, () => {
console.log('ステートが更新された。' + isVisible);
});
Loading...
普通に事前に別の変数に格納してくれ
const [isVisible, setIsVisible] = useState(true);
const func = () => {
const newValue = false
setIsVisible(newValue)
console.log(newValue)
}