首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReactCSSTransitionGroup无效果

ReactCSSTransitionGroup无效果
EN

Stack Overflow用户
提问于 2016-04-08 15:15:40
回答 2查看 810关注 0票数 4

我正试图用ReactCSSTransitionGroup从我的状态中动画一个项目数组。appearenter类可以正常工作,但是leave类不会触发。我要把我的减速机里的东西

代码语言:javascript
复制
state.deleteIn(['globalArray','array'])

把它装满

代码语言:javascript
复制
state.setIn(['globalArray', 'array'], action.newItems)

渲染功能:

代码语言:javascript
复制
 return (
<ReactCSSTransitionGroup transitionAppearTimeout={2000} transitionEnterTimeout={10000}
                         transitionLeaveTimeout={10000} transitionName={animation} transitionAppear={true}>
  <Paper zDepth={2}>

      <ReactImageFallback
        src={ item.imagesrc }
        fallbackImage={ item.imagesrc }
      />
  </Paper>
</ReactCSSTransitionGroup>)

Css (仅用于测试):

代码语言:javascript
复制
.enter {
}

.enter.enterActive {
}

.leave {
    transform: translate(+100%,+50%) ;
}

.leave.leaveActive {
    transition-timing-function: ease-in;
}

.appear {
    opacity: 0;
    transform: translate(-100%,-50%) ;
}

.appear.appearActive {
    transition-duration: 5s ;
    transition-timing-function: ease-out;
}

我也在使用cssNext。是否有办法在删除时触发休假类?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-14 09:11:02

您可以更新您的状态,但不使用它来呈现您的元素(或者至少不是从您共享的代码中)。

如果您希望根据组件的状态在“输入”或“离开”时动画化Paper。例如:

代码语言:javascript
复制
render() {
    let items = this.state.items.map(item => (
        <Paper zDepth={2} key={/* unique key or index here */}>
            <ReactImageFallback
                src={ item.imagesrc }
                fallbackImage={ item.imagesrc }
            />
        </Paper>
    ));
    return (
        <ReactCSSTransitionGroup /*transitionE... props here */>
            {items}
        </ReactCSSTransitionGroup>
    );
}
票数 0
EN

Stack Overflow用户

发布于 2018-10-25 20:36:00

我经历了同样的事情,并跟踪这个问题,直到我从页面中删除了ReactCSSTransitionGroup组件,而我应该只是在其中删除所需的元素。

这(工程):

代码语言:javascript
复制
render() {
  return (
    <div>
      <ReactCSSTransitionGroup /*...props...*/>
        {display && <ItemToRemoveFromPage />}
      </ReactCSSTransitionGroup>
    </div>
  );
}

而不是这样(不起作用):

代码语言:javascript
复制
render() {
  return (
    <div>
      {display && (
        <ReactCSSTransitionGroup /*...props...*/>
          <ItemToRemoveFromPage />
        </ReactCSSTransitionGroup>
      )}
    </div>
  );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36503282

复制
相关文章

相似问题

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