CSSTransition组件的appear属性应用后卫达到效果

来源:4-13 使用 react-transition-group 实现动画(1)

console_man

2019-03-29

老师,你好,请问下为什么我应用了appear属性,但是第一次渲染的时候并未生效

子组件Test.js:

import React, { Component } from "react";
import { CSSTransition } from "react-transition-group";

import "./Test.css";

class Test extends Component {
    constructor(props) {
        super(props);

       this.state = {
            show: true
        };
    }

    render() {
        return (
            <React.Fragment>
                <CSSTransition
                    in={this.state.show}
                    timeout={10000}
                    classNames="alert"
                    appear={true}
                >
                    <span>hello world</span>
                </CSSTransition>

                <button onClick={this.handleOnClick.bind(this)}>toggle</button>
            </React.Fragment>
           
        );
    }

    handleOnClick() {
        this.setState((prevState) => ({
            show: !prevState.show
        }));
    }

    handleOnEnter() {
        console.log("onEnter");
    }

}

export default Test;

子组件对应的样式文件Test.css
.alert-appear {
    opacity: 0;
}
.alert-appear-active {
    opacity: 1;
    transition: opacity 30000ms;
}

.alert-enter {
    opacity: 0;
  }

.alert-enter-active {
    opacity: 1;
    transition: opacity 30000ms;
}

.alert-enter-done {
    opacity: 1;
}

.alert-exit {
    opacity: 1;
}
.alert-exit-active {
    opacity: 0;
    transition: opacity 300ms;
}
  
写回答

2回答

东风破

2019-04-08

你的timeout设置是不是有问题呢,我用老师讲的方法是没问题的

0
1
console_man
嗯,同学你好,我换了浏览器是可以的。但是用谷歌浏览器73.0.3683.86不行。请问你用的是哪个浏览器呀。
2019-04-10
共1条回复

Dell

2019-03-30

同学你好,帮忙看下我写的那个demo,也有这个问题吗,确认下是我的问题还是你这块自己代码的问题

0
3
console_man
回复
Dell
老师,不是你的代码问题。我用谷歌浏览器73.0.3683.86测试不行,但换了个浏览器就可以。
2019-04-10
共3条回复

React零基础入门到实战,完成企业级项目简书网站开发

主流新技术 React-redux,React-router4,贯穿基础语法

5275 学习 · 2496 问题

查看课程