css - 将 ReactCSSTransitionGroup 与样式组件一起使用

标签 css reactjs styled-components

我正在使用 styled-components而不是传统的CSS方式。但我不知道它如何与 ReactCSSTransitionGroup 一起工作.

基本上,ReactCSSTransitionGroup 在 css 资源中寻找特定的类名,然后在组件的整个生命周期中应用。但是,对于 styled-components,没有任何类名,样式直接应用于组件。

我知道我可以选择不使用 ReactCSSTransitionGroup,因为这两种技术看起来不兼容。但是当我只使用 styled-components 时,似乎我无法在卸载组件时呈现任何动画 - 它是纯 css,无法访问组件的生命周期。

如有任何帮助或建议,我们将不胜感激。

最佳答案

我不想按照另一个答案中的建议使用 injectGlobal,因为我需要使每个组件的转换不同。

事实证明这很简单 - 只需将过渡类嵌套在组件的样式中即可:

import React from "react";
import CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup';
import styled from 'styled-components';

const appearDuration = 500;
const transitionName = `example`;

const Container = styled.section`
        font-size: 1.5em;
        padding: 0;
        margin: 0;

        &.${transitionName}-appear {
            opacity: 0.01;
        }

        &.${transitionName}-appear-active {
            opacity: 1;
            transition: opacity ${appearDuration}ms ease-out;
        }`;

export default () => {

    return (
        <CSSTransitionGroup
            transitionName={transitionName}
            transitionAppear={true}
            transitionAppearTimeout={appearDuration}>
            <Container>
                This will have the appear transition applied!
            </Container>
        </CSSTransitionGroup>
    );
};

请注意,我使用的是较新的 CSSTransitionGroup,而不是 ReactCSSTransitionGroup,但它也应该适用。

关于css - 将 ReactCSSTransitionGroup 与样式组件一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42660907/

相关文章:

javascript - 清除动态添加/删除输入的输入值

javascript | json解析

ruby-on-rails - 响应前端以明文发送 https

css - 无法使用样式化组件和 Next.js 导入 Google 字体

css - 有没有办法修改 '&:before/:after' 以提供动态属性?

jquery - 我如何改进我的 asp.net mvc 3 web 应用程序的默认布局模板?

javascript - react js : Why is the html not rendering?

javascript - 从 redux 中的 reducer 取回 ID

javascript - 样式化组件 : Global Colors Style Sheet

javascript - CSS指数数