【问题标题】:React animation when removing an element移除元素时反应动画
【发布时间】:2016-12-22 05:18:59
【问题描述】:

我对 React 很陌生。我正在尝试通过实施完整的 CRUD 来学习。但是,从列表中删除课程时,我无法让动画正常工作。

我在transitionAppeartransitionLeave 上配置了动画。 transitionAppear 工作正常。我无法获得transitionLeave

这是我的组件: https://github.com/leonardoanalista/react-crud/blob/master/src/components/course/CourseListRow.js

这是动画的 CSS: https://github.com/leonardoanalista/react-crud/blob/master/src/style.css#L66

如果有更好的方法,请告诉我。

任何帮助将不胜感激!

干杯 莱昂纳多

【问题讨论】:

    标签: javascript reactjs reactcsstransitiongroup


    【解决方案1】:

    您将 ReactCSSTransitionGroup 与组一起呈现,这是您不应该根据here 执行的操作,因为该组需要安装在过渡组内。我知道您想在每一行上进行过渡,但要使其正常工作,它需要在 tbody 上。

    您需要做的就是从 CourseListRow 组件中取出 ReactCSSTransitionGroup 并将其添加到 CourseList:

    </thead>
    <ReactCSSTransitionGroup
      transitionName="course-item"
      transitionLeave={true}
      transitionAppear={true}
      transitionAppearTimeout={2500}
      transitionEnterTimeout={1700}
      transitionLeaveTimeout={1000}
      component="tbody"
    >
      {this.props.courses.map(course =>
        <CourseListRow key={course.id} course={course} removeCourse={this.props.removeCourse} />
      )}
    </ReactCSSTransitionGroup>
    </table>
    

    我在您的存储库中提出了一个拉取请求,并修复了该错误。

    【讨论】:

    • 谢谢侯赛因!我想我尝试了这种方法,但我没有去theadReactCSSTransitionGroup 动画真的令人印象深刻。我将您手动更改的 2 个文件复制到新提交:github.com/leonardoanalista/react-crud/commit/…
    • 当然!你能接受这个答案是正确的吗?
    猜你喜欢
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多