【发布时间】:2021-09-30 07:51:08
【问题描述】:
我有 2 个组件根据 useState 中存储为 showModal 的字符串值有条件地显示或隐藏
{showModal === 'SIGNIN' && <SignIn />}
{showModal === 'JOIN' && <Join />}
我想淡入一个组件,然后当状态发生变化时,将其淡出并淡入另一个组件。
这可以用react transition group 完成吗?
我试过了
<TransitionGroup>
<CSSTransition in={showModal === 'SIGNIN' ? true : false} classNames='fade' timeout={220} key={showModal}>
<div>
<SignIn />
</div>
</CSSTransition>
<CSSTransition in={showModal === 'JOIN' ? true : false} classNames='fade' timeout={220} key={showModal}>
<div>
<Join />
</div>
</CSSTransition>
</TransitionGroup>
我没有收到任何错误,显示了一个组件,将 showModal 从“SIGNIN”更改为“JOIN”没有任何作用。检查超时设置为 22000 的 div 表明没有添加任何新类。
【问题讨论】:
-
您可能需要将每个内部组件包装在其自己的
CSSTransition组件中。不过,我自己对他们来说是新手。 -
是的,这个例子映射了一个数组,然后对进出数组的项目进行动画处理,我没有数组,我只有 2 个组件
-
我想知道这个错误是否不仅仅是一种冗长的方式来告诉您您在
CSSTransition上缺少props。在我的一个实现中,我在in属性中使用了状态值。你在做什么? -
再次感谢,我已更新问题以显示尝试使用
in