首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在react-router v4中实现基于路由转换方向的动画?

如何在react-router v4中实现基于路由转换方向的动画?
EN

Stack Overflow用户
提问于 2016-12-17 00:36:20
回答 1查看 365关注 0票数 0

我已经成功地使用react-router v4和react-motion实现了路由转换动画。目前我只能在一个方向上制作过渡动画。例如,我使用slideLeft转换到新页面。但是当goBack发生转换时,我希望有slideRight。一般来说,我想知道如何根据后退或前进状态来挂钩动画。

EN

回答 1

Stack Overflow用户

发布于 2016-12-17 13:04:01

v4仍然是alpha,所以这个答案可能会改变。

在v4 Alpha6中,您可以通过上下文访问history实例。该实例的一个属性是action,它是最后一个导航的操作类型。可能的值是PUSH (前进)、POP (后退)和REPLACE (相同的位置,但可能会将其视为动画的前进位置)。

代码语言:javascript
复制
const { action } = this.context.history

您可以根据action的可能值来确定动画方向。

v4的最新重构(未实际发布,但可通过GitHub获得)删除了history上下文变量,因此我上面描述的内容不再可行。也就是说,有一个issue,希望很快就会有一个PR来添加action作为一个值,它将通过router上下文提供。

代码语言:javascript
复制
const { action } = this.context.router.getState()

编辑

显然,因为forward按钮的使用也是一个popstate事件,所以关联的操作是POP。这使得知道是向前还是向后设置动画变得更加困难。我可能只会把所有的POP都当做back,但这是一个随意的决定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41188756

复制
相关文章

相似问题

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