我正在尝试使通知淡入/淡出,但它不起作用transitionAppear。我正在向事件添加一个元素(通知弹出窗口)onBlur(在我单击输入外部之后)。动画leave在此期间运行顺利,但在此期间它appear只是突然出现而没有transition. 最近在 React 中,不要发誓太多 :D
代码沙盒: https ://codesandbox.io/s/l26j10613q
PS
如果我添加-它有效ReactCSSTransitionGroup,但没有。alert.jsappearleave
alert.js:
export default class Alert extends Component {
render() {
const { icon, text } = this.props;
let classNames = "cards-wrapper-alert";
return (
<div className={classNames}>
<Card zIndex="2">
<Icon icon={icon} eClass="alert-message-icon"/>
<Label text={text} fw="fw-medium" fs="fs-14" fc="c-dark"/>
</Card>
</div>
);
}
}
alert.css:
.alert-appear {
max-height: 0;
overflow: hidden;
}
.alert-appear.alert-appear-active {
max-height: 80px;
transition: max-height 300ms ease-in-out;
}
.alert-leave {
max-height: 80px;
}
.alert-leave.alert-leave-active {
max-height: 0;
overflow: hidden;
transition: max-height 300ms ease-in-out;
}
input.js:
<ReactCSSTransitionGroup
component={this.prepareComponentForAnimation}
transitionName="alert"
transitionEnter={false}
transitionAppear={true}
transitionAppearTimeout={400}
transitionLeaveTimeout={400}>
{this.state.alert ?
React.cloneElement(this.props.children, {
icon: this.state.icon,
text: this.state.text
})
: null}
</ReactCSSTransitionGroup>
例子:

问题解决了。应该使用
transitionEnter而不是transitionAppear.问题在这里解决 [En StackOverflow]
CodeSandbox - 回答