我有一个函数可以设置两次状态,但是 - 第二次setState
必须在第一次发生后 500 毫秒后setState
发生(动画目的)。
代码如下:
const showAnimation = () => {
this.setState({ hidden: false });
setTimeout(() => {
this.setState({ hidden: true });
}, 500);
};
但是- 如果我这样做,React 会以某种方式将这两个合并setState
为一个,并且我的动画无法按预期工作。
但是,如果我使用 hack:
const showAnimation = () => {
setTimeout(() => {
this.setState({ hidden: false });
}, 0); // ------------------------------> timeout 0
setTimeout(() => {
this.setState({ hidden: true });
}, 500);
};
它按预期工作。但是,我仍然不喜欢它,而且我担心它可能是某种黑客行为。这种情况有没有更好的解决方案?谢谢 :)