javascript - react "react-transition-group"不起作用

标签 javascript css facebook reactjs animation

我正在将我的元素迁移到 React 的最新版本,我看到 ReactCSSTransitionGroupdeprecated ... 所以我使用 recomended package由 React 开发者提供。当我使用 ReactCSSTransitionGroup 时,动画在组件呈现时正常工作,但使用此包时,组件不工作且不设置动画。

我做了一个简单的例子来测试,但是没有用...怎么了?

react 代码:

import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup';

class App extends Component {
    render() {
        return (
            <CSSTransitionGroup
              transitionName="example"
              transitionAppear={true}
              transitionAppearTimeout={3000}
              transitionEnter={true}
              transitionEnterTimeout={3000}
              transitionLeave={false}>

                <div id="container">
                    Animation test
                </div>

            </CSSTransitionGroup>
        );
    }
}

ReactDOM.render(
    <App />,
    document.getElementById('app')
);

CSS 代码:

.example-enter {
    opacity: 0.01;
    border: 1px solid red;
}
.example-enter.example-enter-active {
    opacity: 1;
    transition: all 2s ease 0s;
    border: 1px solid orange;
}
.example-leave {
    opacity: 1;
    border: 1px solid green;
}
.example-leave.example-leave-active {
    opacity: 0.01;
    transition: all 3s ease 0s;
    border: 1px solid blue;
}

最佳答案

来自文档:“您必须为 CSSTransitionGroup 的所有子项提供 key 属性,即使只呈现单个元素也是如此。这就是 React 确定哪些子项已进入、离开或停留的方式。”

此外,您还应该检查您的 css 类名并添加“出现”前缀,如果您想要在初始挂载期间使用动画:

.example-appear {
    opacity: 0.01;
    border: 1px solid red;
}
.example-appear.example-appear-active {
    opacity: 1;
    transition: all 2s ease 0s;
    border: 1px solid orange;
}

关于javascript - react "react-transition-group"不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43869251/

相关文章:

javascript - 如何跟踪页面上移动的 div

css - 如何增加显示标签表的字体大小

javascript - 为什么即使 div 没有高度,transition with translate 也会占用空间?

facebook - 如何在Facebook中使用unicode(十六进制)输出字符?

iOS 8.1 Swift UIActivityViewController 不显示社交媒体共享(Facebook、twitter、WhatsApp 等)

javascript - canvasjs 柱形图 - json 对象中有 'x' 值,我不知道它来自哪里

JavaScript 单选按钮确认

javascript - 将包含 8 位整数的 Uint16Array 转换为常规整数

javascript - 当我在 vanilla js 中选择 <select> 选项时如何更改 <a> href

wpf - 调用线程必须是STA,因为很多UI组件都需要这个