在 React JS 中 css 转换结束后如何使用 setState?
How to use setState after a css transition ends in React JS?
//sample piece of codes
constructor() {
super()
this.state.opacity= '0'
this.state.mover = 'translateY(-40%)'
}
this.setState({opacity:'1'})
this.setState({mover: 'translateY(-900%)'}, () => {this.setState({opacity:'0'})})
当我点击一个按钮时,我想要 div 出现(使用不透明度 1)并过渡到顶部并在到达顶部后淡出(使用不透明度 0)。
但它没有按我预期的方式工作。目前,它会立即消失。它不会等待过渡结束。我希望它在 过渡结束后 淡出。
React 有办法修复它吗?我对反应很陌生。非常感谢您的帮助。谢谢
找到了一个简单的解决方法。我不确定这是否正确,但它确实有效。
constructor() {
super()
this.state.opacity= '0'
this.state.mover = 'translateY(-40%)'
}
this.setState({opacity:'1'})
this.setState({mover: 'translateY(-900%)'}, () => {
setTimeout(() => { this.setState({ opacity: '0' })}, 1000);
})
在回调函数中,我设置了一个settimeout函数。 settimeout 函数内的事件将在 xxx 毫秒后触发。所以基本上你必须计算你之前转换的持续时间并相应地设置时间。
//sample piece of codes
constructor() {
super()
this.state.opacity= '0'
this.state.mover = 'translateY(-40%)'
}
this.setState({opacity:'1'})
this.setState({mover: 'translateY(-900%)'}, () => {this.setState({opacity:'0'})})
当我点击一个按钮时,我想要 div 出现(使用不透明度 1)并过渡到顶部并在到达顶部后淡出(使用不透明度 0)。
但它没有按我预期的方式工作。目前,它会立即消失。它不会等待过渡结束。我希望它在 过渡结束后 淡出。
React 有办法修复它吗?我对反应很陌生。非常感谢您的帮助。谢谢
找到了一个简单的解决方法。我不确定这是否正确,但它确实有效。
constructor() {
super()
this.state.opacity= '0'
this.state.mover = 'translateY(-40%)'
}
this.setState({opacity:'1'})
this.setState({mover: 'translateY(-900%)'}, () => {
setTimeout(() => { this.setState({ opacity: '0' })}, 1000);
})
在回调函数中,我设置了一个settimeout函数。 settimeout 函数内的事件将在 xxx 毫秒后触发。所以基本上你必须计算你之前转换的持续时间并相应地设置时间。