当我向上或向下滚动到平面列表项目时,需要为其设置动画。两种动画都应该是不同的(对于新项目,向右翻转是从底部输入的,向左翻转是对先前滚动向上到达的项目的翻转)。
当前,在此路径上,我可以通过使用
Flatlist上的onViewableItemsChanged
和viewabilityConfig
道具。我还可以立即为所有列表项设置动画,但是当项目可见时却无法实现动画。
我尝试过的:
我正在将使用上述功能获得的可见物品列表传递给道具。
<FlatList
data={this.state.items}
keyExtractor={item => item.id.toString()}
renderItem={({ item, index }) => <Item values={item} viewable={this.state.viewable} ind={index} />}
onViewableItemsChanged={this.handleViewableItemsChanged}
viewabilityConfig={this.viewabilityConfig}
/>
然后在项目componentDidMount
中,我试图确定正在渲染的项目是否在视图中并添加动画:
var apply = this.props.viewable.filter(ele => ele.key == this.props.ind).length > 0;
this.setState({ shouldAnimate: apply });
这不适用于我想做的事情。