首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内联样式与ReactCSSTransitionGroup

内联样式与ReactCSSTransitionGroup
EN

Stack Overflow用户
提问于 2016-01-20 19:26:06
回答 2查看 5.2K关注 0票数 3

我是否可以使用ReactCSSTransitionGroupreact-addons-css-transition-group与反应内联风格?如果是这样的话,是怎么做的?

,我正在开发的组件:

代码语言:javascript
复制
import React, { Component } from 'react'
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
import ReactCSSTransitionGroup from 'react-addons-css-transition-group'

import { removeNotification } from '../actionCreators'
import Notification from './Notification'

const mapStateToProps = state => ({
  notifications: state.notifications
})

const mapDispatchToProps = dispatch => ({
  actions: bindActionCreators({ removeNotification }, dispatch)
})

class Notifications extends Component {
  render() {
    var style = {
      position: 'fixed',
      top: 20,
      right: 20,
      width: 300,
      zIndex: 99
    }
    var tstyle = {
      'notification-enter': {
        visibility: 'hidden',
        transform: 'translate3d(100%,0,0)'
      },
      'notification-leave': {
        visibility: 'visible',
        transform: 'translate3d(0,0,0)'
      },
      'notification-enter-notification-enter-active': {
        visibility: 'visible',
        transform: 'translate3d(0,0,0)',
        transition: 'all 0.4s'
      },
      'notification-leave-notification-leave-active': {
        visibility: 'hidden',
        transform: 'translate3d(100%,0,0)',
        transition: 'all 0.4s'
      }
    }

    return (
      <ul style={style}>
        <ReactCSSTransitionGroup
          style={tstyle}
          transitionName='notification'
          transitionEnterTimeout={400}
          transitionLeaveTimeout={400}>
          {this.props.notifications.map((notification, index) => {
            return <Notification
                    key={index}
                    type={notification.type}
                    message={notification.message}
                    timeout={10000}
                    remove={this.props.actions.removeNotification} />
          })}
        </ReactCSSTransitionGroup>
      </ul>
    )
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(Notifications)
EN

回答 2

Stack Overflow用户

发布于 2016-05-24 07:08:17

ReactCSSTransitionGroup与内联样式不兼容,因为它向DOM节点添加或删除类名以触发转换。但是,您可以使用ReactTransitionGroup来制作您自己的组件,该组件可以执行ReactCSSTransitionGroup所做的相同工作,但可以使用内联样式。

如果你不想开发你自己的,你可以使用我不久前写过的,用npm:ReactInlineTransitionGroup安装它。

它比ReactCSSTransitionGroup有一些优点,比如您可以编写CSS转换,而不必担心在组件中设置超时属性,并且可以通过回调来检查一个子组何时进入或离开您的组。

票数 3
EN

Stack Overflow用户

发布于 2021-07-27 10:25:55

做这个

代码语言:javascript
复制
style={{
                // flex: over ? 1 : null,
                display: 'flex',
                width: wide ? 400 : null,
                paddingBottom: wide ? 500 : null,
                border: over ? '4px solid greenyellow' : null,
                borderRadius: wide ? 30 : null,
                paddingVertical: over ? 500 : null,
                background: over ? 'black' : 'white',
                transition:
                    'background 500ms',
                cursor: 'pointer',
            }}

,或者如果您想获得多个属性,

代码语言:javascript
复制
style={{
                display: 'flex',
                width: wide ? 400 : null,
                paddingBottom: wide ? 500 : null,
                border: over ? '4px solid greenyellow' : null,
                borderRadius: wide ? 30 : null,
                paddingVertical: over ? 500 : null,
                background: over ? 'black' : 'white',
                transition:
                    'background 500ms, padding 500ms, width 500ms, border 500ms',
                cursor: 'pointer',
            }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34908772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档