【发布时间】:2015-07-13 05:40:15
【问题描述】:
我正在使用 React 和 Reflux 构建一个应用程序,并且我正在尝试按特定顺序呈现项目列表。
这些项目是按时间倒序呈现的自定义 Post 组件,因此最新的帖子位于列表顶部。
我正在使用可汗学院的TimeoutTransitionGroup 让列表项淡入淡出。
我看到的问题是,当我添加新帖子并且组件通过新道具获取更新的列表时,转换发生在列表中的 last 元素而不是第一个元素上。我想让它让第一个元素淡入,因为那是添加的新项目的位置。
帖子 2
帖子 1
有没有办法指定相同的项目顺序,但以相反的顺序呈现它们,或者类似的东西?
这是我的组件的渲染函数:
if (!(this.props.posts && this.props.ordering)) return false;
var posts = this.props.ordering.map(function(postId, index) {
return <Post key={index} post={this.props.posts[postId]}/>;
}, this);
return (
<div className="post-collection">
<TimeoutTransitionGroup
enterTimeout={500}
leaveTimeout={500}
transitionName="postTransition">
{posts}
</TimeoutTransitionGroup>
</div>
);
这是 CSS 过渡:
.postTransition-enter {
opacity: 0;
transition: opacity .25s ease-in;
}
.postTransition-enter.postTransition-enter-active {
opacity: 1;
}
.postTransition-leave {
opacity: 1;
transition: opacity .25s ease-in;
}
.postTransition-leave.postTransition-leave-active {
opacity: 0;
}
任何帮助将不胜感激!
【问题讨论】:
标签: javascript reactjs refluxjs khan-academy reactcsstransitiongroup