reactjs - 反应过渡 - 如果使用相同的组件则不起作用
问题描述
我有以下代码:
<>
{isGuest? (
<FadeInTransition>
<GuestDetails onDisabled={() => onDcpSwitchClick(false)} />
</FadeInTransition>
) : (
<FadeInTransition>
<MemberDetails onEnabled={() => onDcpSwitchClick(true)} />
</FadeInTransition>
)}
</>
过渡组件:
import React from 'react';
import { Transition } from 'react-transition-group';
const fadeInDefaultStyle = {
transition: `transform 400ms, opacity 400ms ease`,
opacity: 1,
};
const fadeInTransitionStyles = {
entering: { opacity: 0 },
entered: { opacity: 1 },
exiting: { opacity: 0 },
exited: { opacity: 0 },
};
export const FadeInTransition = ({ children }) => (
<Transition
in
timeout={{
appear: 200,
enter: 500,
exit: 300,
}}
appear
>
{(state) => (
<section
style={{
...fadeInDefaultStyle,
...fadeInTransitionStyles[state],
}}
>
{children}
</section>
)}
</Transition>
);
由于某种原因,它仅在第一次渲染中有效。FadeInTransition
但是,如果我使用与它喜欢的名称相同的代码创建一个新组件OtherTransitoin
,它也会在渲染后工作(当 isGuest 使用按钮更改时)
知道有什么问题吗?为什么使用相同的组件 ( FadeInTransition
) 会改变一些东西?反应 16.11
解决方案
推荐阅读
- python - 快速搜索 Pandas 数据框列
- dart - 颤振更改文本字段下划线颜色
- regex - sed 模式似乎不匹配/替换
- ios - iOS - Google Maps Places onclick 与 map onclick 冲突
- dart - Flutter PositionedTransitioned to below other Stack child - 如何获得高度?
- php - 无法从 ubuntuserver 运行 php mysqli 脚本
- java - Using Java 8 streams, how to transform Map
>> to Map >? - python - Python:查看列表中的哪些值“如果有”语句为真
- python - 查找销售年份之间的差异
- android - 使用半径内的设备添加地理围栏时,从未收到地理围栏停留事件