- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我从旧的 CSSTransitionGroup
迁移到新的 react-transition-group CSSTransition
和 TransitionGroup
。
我正在创建(破解)一个叠加层加载器,并尝试在叠加层出现和消失时将动画应用于它。
特别是当我将 active=true
属性传递给 LoadingOverlayWrapper
时,一个新的 CSSTransition
被添加到 TransitionGroup
(Fade
组件)包裹要显示的叠加层。
当 active=false
时,CSSTransition
将从 TransitionGroup
中移除(TransitionGroup
的直接子级)为 null
)。
这是代码的相关部分:
import React, {Children} from 'react'
import PropTypes from 'prop-types'
import {CSSTransition, TransitionGroup} from 'react-transition-group'
import LoadingOverlay from "./LoadingOverlay";
import styles from './Overlay.sass';
const FirstChild = props => Children.toArray(props.children)[0] || null;
const Fade = (props) => (
<CSSTransition
{...props}
timeout={500}
classNames={{
appear: styles.appear,
appearActive: styles.appearActive,
enter: styles.enter,
enterActive: styles.enterActive,
exit: styles.exit,
exitActive: styles.exitActive
}}
>
<FirstChild {...props} />
</CSSTransition>
);
class LoadingOverlayWrapper extends React.Component {
render() {
const {active} = this.props;
return (
<div>
<TransitionGroup>
{
active ?
(
<Fade key='transition_effect'>
<LoadingOverlay key='the_dimmer' {...this.props} />
</Fade>
)
:
null
}
</TransitionGroup>
{this.props.children}
</div>
)
}
}
这是相关的 sass 文件(作为 css 模块导入):
.enter, .appear
opacity: 0.01
.appearActive, .enterActive
opacity: 1
transition: opacity .5s ease-in
.exit, .leave
opacity: 0.01
.exitActive, .leaveActive
opacity: 0
transition: opacity .5s ease-in
进入(或出现,此处不确定)过渡有效。
问题 是当我删除 Fade
组件时,替换为 null
然后退出转换不应用(或不可见) 但我没有收到任何错误,其他一切都按预期工作。
鉴于我对 React TransitionGroup 的经验很少,我不确定如何调试或继续此处。
最佳答案
我一直在努力解决同样的问题 - 对我有用的解决方案是使用 childFactory支持 <TransitionGroup>
像这样:
<TransitionGroup
childFactory={child => React.cloneElement(child)}
>
{
active ?
(
<Fade key='transition_effect'>
<LoadingOverlay key='the_dimmer' {...this.props} />
</Fade>
)
:
null
}
</TransitionGroup>
关于javascript - TransitionGroup 和 CssTransition : Exit transition not applied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46774420/
我可能会误解这整件事,但我正在尝试使用 React 和 React Transition Group 制作一些 css 动画。 但是对于我下面的代码,退出动画 不会为嵌套的(最后一个)CSSTrans
我有一个 React 组件的动画,我无法运行它。 我认为过渡有问题,因为如果我只是一个不透明度的动画,一切都很好 我正在使用 react-transition-group 中的 CSSTransiti
我想在初始安装组件时或之后为 div 设置动画(淡入)。动画完成后,div 不应消失。我正在尝试使用 CSSTransition 组件并查看 reactcommunity.org 上的示例,但我根本无
我已经安装了 react-transition-group 并通过以下方式调用它: import { CSSTransition, TransitionGroup } from 'react-tran
我正在尝试使用 npm 包 react-transition-group 制作一个滑出式抽屉。无论出于何种原因,我似乎无法让抽屉在单击附加条件按钮时从左向右滑出。如果您可以在不使用该软件包的情况下解决
更新: 对于那些面临同样问题的人:我在 ReactTransitionGroup 的 git 页面上发现了类似的问题,其中有解决方案:https://github.com/reactjs/react-
有两页。进入页面动画正常,退出页面突然卡住了。 这是版本: "react-router-dom": "^4.2.2", “ react 过渡组”:“^4.0.1”, “ react ”:“^16.4.
使用 CSSTransition 组件和 React 我想应用淡入动画 在这里你可以找到我想要实现的一个小例子:https://codesandbox.io/s/j75712qjvy 在第一次加载时,
使用 CSSTransition 组件和 React 我想应用淡入动画 在这里你可以找到我想要实现的一个小例子:https://codesandbox.io/s/j75712qjvy 在第一次加载时,
我想在我的网络应用程序中为一个框设置动画(淡入、淡出)。我正在使用 react-transition-group为了这。但不知何故,动画不起作用。代码 import React from 'react
我正在开发轮播应用程序,我必须使用 React Transition Group动画它。出于某种原因,我似乎无法正确应用这些类。 它混合了专有代码和开源代码,所以如果这个示例还不够,我很乐意扩展我的示
我试图让登录组件在加载页面时淡入,然后在呈现新组件时淡出。根本没有褪色发生,它只是出现。我在其他帖子中读到您需要一个 key ,但我不知道在这种情况下 key 值是什么? return (
我正在尝试使用CSSTransitionGroup(或ReactTransitionGroup)为内容在dom中出现和消失时创建垂直平滑滚动效果。 我知道使用纯 css 中的过渡来动画化这种效果的方法
尝试将 CSSTransition 添加到我的 React 应用程序中,但我遇到了这个问题。当我说唱我想要动画的元素时,它会变成空白。任何帮助,将不胜感激。这是我的代码 render() {
我正在尝试在我的元素中实现一个模态的 CSSTransition。问题是我正在使用 css 模块。 我的模态渲染方法 render() { return (
我正在从 React 调用 CSS Transition Group 属性。 在我的 js 文件中: var ReactCSSTransitionGroup = React.addons.CSSTra
“ react ”:“^16.13.1” “ react 过渡组”:“^4.3.0” 大家好。 我遇到了 findDOMNode 警告,在互联网上找不
因此,我有一小部分代码尝试添加一个动画作为 Tooltip Nodes 的包装器。但也许我做错了什么,因为我在屏幕上没有看到 mount 期间出现任何 animation。 此外,它甚至不会在 onE
我正在开发一个为图像提供交替 src 值的轮播。这确实有效,但是我无法让 React CSSTransition 正常工作,因为从技术上讲,它是同一个元素,只是具有绑定(bind)到状态变量的不断变化
我正在开发一个 React 小部件(分步向导),它从 API 获取和显示内容。我不知道,我从 API 获取的文本有多长。所以我不知道,小部件的高度。小部件应增加与内容相关的高度(如默认的 HTML 元
我是一名优秀的程序员,十分优秀!