Reactjs 卸载前播放动画

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应用程序,我正在使用
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。我用路由器来交换组件。我想在卸载组件之前激活退出状态,然后在动画完成后继续卸载。