Reactjs 卸载前播放动画
我有一个react应用程序,我正在使用Reactjs 卸载前播放动画,reactjs,animation,transition,react-transition-group,Reactjs,Animation,Transition,React Transition Group,我有一个react应用程序,我正在使用react transition group包中的组件在创建和销毁组件时创建转换动画。我在组件willmount循环中的prop中设置。然而,当组件即将被销毁时,我似乎不知道如何恢复道具中的。文件中并没有太多关于退出过渡的内容 这是我的密码: const defaultStyle = { transition: `opacity 1000ms ease-in-out`, opacity: 0, padding: 20, dis
react transition group
包中的
组件在创建和销毁组件时创建转换动画。我在组件willmount
循环中的prop中设置。然而,当组件即将被销毁时,我似乎不知道如何恢复道具中的。文件中并没有太多关于退出过渡的内容
这是我的密码:
const defaultStyle = {
transition: `opacity 1000ms ease-in-out`,
opacity: 0,
padding: 20,
display: 'inline-block',
backgroundColor: '#8787d8'
};
const transitionStyles = {
entering: { opacity: 0 },
entered: { opacity: 1 },
exiting: { opacity: 1 },
exited: { opacity: 0 },
};
export default class Home extends Component {
constructor() {
super();
this.state = {
in: false
}
}
componentWillMount() {
const home = this;
// This: Works Perfectly
home.setState({ in: true });
}
componentWillUnmount() {
const home = this;
// This: Not so much
home.setState({ in: false });
}
render() {
return (
<Transition in={ this.state.in } timeout={ 0 }>
{(state) => (
<div className="page" style={{
...defaultStyle,
...transitionStyles[state]
}}>
I'm A fade Transition!
</div>
)}
</Transition>
)
}
}
const defaultStyle={
过渡:`1000ms不透明度缓进缓出`,
不透明度:0,
填充:20,
显示:“内联块”,
背景颜色:“#8787d8”
};
常量转换类型={
输入:{opacity:0},
输入:{opacity:1},
正在退出:{opacity:1},
已退出:{opacity:0},
};
导出默认类Home extends组件{
构造函数(){
超级();
此.state={
in:错
}
}
组件willmount(){
const home=这个;
//这个:非常好用
setState({in:true});
}
组件将卸载(){
const home=这个;
//这个:没有那么多
home.setState({in:false});
}
render(){
返回(
{(州)=>(
我是一个渐变!
)}
)
}
}
您能否确认您的组件是否确实在卸载,以及是否调用了componentWillUmount()
?v2文档似乎建议组件即使在达到退出
转换状态后仍保留在DOM中。它们公开了一个unmountenxit
prop
,该属性应在组件达到退出状态后强制卸载。根据文件:
默认情况下,子组件在达到“Exit”(退出)状态后保持装入状态。如果希望在组件退出后卸载组件,请设置unmountonnexit
不起作用。我使用的是react转换组v2I,我不想卸载onExit,我想退出onUnmount。我用路由器来交换组件。我想在卸载组件之前激活退出状态,然后在动画完成后继续卸载。