我正在制作带有三个图像的滑块。对于此幻灯片的后退按钮,它应从最后一张图像开始并返回到1。控制台登录时,以下代码从3递减到2,但是丢失1,所以3 2 3 2 3 2 ...我不不明白为什么吗?怎么了
this.state = {
imageCount: 0,
}
previousSlide() {
this.setState({
imageCount: 3
});
if (this.state.imageCount === 3) {
this.setState((prevState) => ({
imageCount: (prevState.imageCount - 1 )
}));
}
console.log("previousSlide", this.state.imageCount)
}
最佳答案
最简单的解决方案是在setState内部执行逻辑,这样您只需调用一次即可:
previousSlide() {
this.setState({imageCount} => (
{imageCount: imageCount === 0 ? 3 : imageCount - 1}
);
}
}
此代码将总是将imageCount设置为比以前少1,除非它为0,在这种情况下它将循环为3。
关于javascript - 减少setState中的计数器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51565203/