当前位置: 首页 > 面试题库 >

使用React Motion的React Router v4 Match过渡

鱼渝
2023-03-14
问题内容

我喜欢RR4和RM,已经有了React Router V4的出色示例(https://github.com/ReactTraining/react-
router/tree/v4/website/examples
),但我一直在努力了解如何使用新的V4 API可以在我的路由器中通过React
Motion在不同的匹配之间进行转换,并在我的“页面”之间淡入和淡出。

我试图了解Transition示例如何与MatchWithFade一起使用,但是我却不知道如何将其应用到代表我的页面结构的多个匹配项中。

例如:给定路由器中的两条路由,如何通过TransitionMotion的react-motion处理html" target="_blank">安装和卸载?

<Router>
  <div>
    <Match pattern="/products" component={Products} />
    <Match pattern="/accessories" component={Accessories} />
  </div>
</Router>

任何帮助将不胜感激。


问题答案:

从链接的示例中,我们可以简化。首先,我们创建一个包装器组件,它将替换<Match/>标签并包装其组件:

import React from 'react'
import { Match } from 'react-router'
import { TransitionMotion, spring } from 'react-motion'

const styles = {}

styles.fill = {
  position: 'absolute',
  left: 0,
  right: 0,
  top: 0,
  bottom: 0
}

const MatchTransition = ({ component: Component, ...rest }) => {
  const willLeave = () => ({ zIndex: 1, opacity: spring(0) })

  return (
    <Match {...rest} children={({ matched, ...props }) => (
      <TransitionMotion
        willLeave={willLeave}
        styles={matched ? [ {
          key: props.location.pathname,
          style: { opacity: 1 },
          data: props
        } ] : []}
      >
        {interpolatedStyles => (
          <div>
            {interpolatedStyles.map(config => (
              <div
                key={config.key}
                style={{ ...styles.fill, ...config.style }}
              >
                <Component {...config.data} />
              </div>
            ))}
          </div>
        )}
      </TransitionMotion>
    )} />
  )
}

export default MatchTransition

然后我们像这样使用它:

<MatchTransition pattern='/here' component={About} />
<MatchTransition pattern='/there' component={Home} />


 类似资料:
  • 问题内容: 我正在尝试将图像(加号)旋转45度以创建十字符号。到目前为止,我已经设法使用下面的代码实现了这一点,但是它可以在悬停状态下工作,我想让它在点击时旋转。 是否有 使用CSS 的简单方法? 我的代码是: CSS HTML 问题答案: 如果您只想使用CSS解决方案,可以使用active 但是,当活动移动时,转换将不会持续。为此,您需要javascript(jqueryclick和css是最干

  • 一个解决方案是在与我的MVC客户机相同的进程中托管IdentityServer4,但这是不鼓励的。 是否有本地用户注册IdentityServer4的好的实际例子?

  • 本文向大家介绍ASP.NET mvc4中的过滤器的使用,包括了ASP.NET mvc4中的过滤器的使用的使用技巧和注意事项,需要的朋友参考一下 mvc4中的过滤器 过滤器(Filter)把附加逻辑注入到MVC框架的请求处理。实现了交叉关注。 交叉关注:用于整个应用程序,又不适合放在某个局部位置的功能。 过滤器是.NET的注解属性(Attribute),它们对请求处理管道添加了额外的步骤。 注解属性

  • 问题内容: 我想知道如何使用Spring Security通过用户的IP过滤用户对我的Web应用程序的访问。我应该以自己的方式扩展或类似的东西并覆盖它的方法吗?如果是这样,您能否在中给出这样的扩展示例和过滤器描述示例?提前致谢。 PS在我的应用程序中,我还具有Spring Security支持(使用default ),但是我希望它不仅检查用户凭据,而且还要检查其IP。 问题答案: 做到这一点的一种

  • 本文向大家介绍详解AngularJS过滤器的使用,包括了详解AngularJS过滤器的使用的使用技巧和注意事项,需要的朋友参考一下 AnularJS的过滤器用来格式化需要展示给用户的数据,有很多实用的内置过滤器,也可以自己编写。 在HTML中的模板绑定符号{{ }}内通过|符号来调用过滤器。例如,假设我们希望将字符串 转换成大写,可以对字符串中的每个字符都单独进行转换操作,也可以使用过滤器: {{

  • 问题内容: 我想使用与列长有关的条件来过滤,这个问题可能很容易,但是我在SO中没有找到任何相关问题。 更具体的,我有一个只有一个,其中,我想过滤使用长度filterer,我拍下面的一个片段。 我阅读了Column的Documentation,但是没有找到任何有用的属性。感谢您的帮助! 问题答案: 在Spark> = 1.5中,您可以使用功能: 在Spark <1.5中,UDF应该可以解决问题: 如