有条件地与react-router链接

菲利普·默克(Filipe Merker)

我的React组件中存在一种情况:Link如果this.props.isComingFromModal为false,我希望将某些元素包装在组件中

我做了什么(JSX):

<If condition={!this.props.isComingFromModal}>
  <Link
    to={{ pathname: `vendors/${benefit.vendor.id}`, state: { modal: false } }}
  >
    <img
      className="Benefit__vendor__thumb"
      src={benefit.vendor.tinyLogoUrl}
      alt="Ponto Frio"
    />


    <div className="Benefit__vendor__info">
      <h2 className="Benefit__vendor__title">{benefit.vendor.tradingName}</h2>
      <div className="rating">
        <Rating
          readonly
          initialRate={benefit.vendor.rating}
          className="rating"
          fractions={2}
          empty="icon-rating icon-rating--empty fa fa-star fa-2x"
          full="icon-rating fa fa-star fa-2x"
        />
      </div>
    </div>
  </Link>
  <Else />
    <img
      className="Benefit__vendor__thumb"
      src={benefit.vendor.tinyLogoUrl}
      alt="Ponto Frio"
    />


    <div className="Benefit__vendor__info">
      <h2 className="Benefit__vendor__title">{benefit.vendor.tradingName}</h2>
      <div className="rating">
        <Rating
          readonly
          initialRate={benefit.vendor.rating}
          className="rating"
          fractions={2}
          empty="icon-rating icon-rating--empty fa fa-star fa-2x"
          full="icon-rating fa fa-star fa-2x"
        />
      </div>
    </div>
</If>

但是我这是重复的。我不能只做(JSX)之类的事情吗

<Link
  to={{ pathname: `vendors/${benefit.vendor.id}`, state: { modal: false } }}
  condition={!this.props.isComingFromModal}
>
  <img
    className="Benefit__vendor__thumb"
    src={benefit.vendor.tinyLogoUrl}
    alt="Ponto Frio"
  />


  <div className="Benefit__vendor__info">
    <h2 className="Benefit__vendor__title">{benefit.vendor.tradingName}</h2>
    <div className="rating">
      <Rating
        readonly
        initialRate={benefit.vendor.rating}
        className="rating"
        fractions={2}
        empty="icon-rating icon-rating--empty fa fa-star fa-2x"
        full="icon-rating fa fa-star fa-2x"
      />
    </div>
  </div>
</Link>

在这种假设的情况下,即使,我也会展示Link组件this.props.isComingFromModal有办法做到这一点吗?

马克斯·史达琳

我简单的功能解决方案:

const ConditionalLink = ({ children, to, condition }) => (!!condition && to)
      ? <Link to={to}>{children}</Link>
      : <>{children}</>;

然后,您可以像这样使用它:

<ConditionalLink to="/path" condition={!isComingFromModal}
  conditional link
</ConditionalLink>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular2 Router-有条件地隐藏链接

来自分类Dev

使用React Router当前路由在菜单上有条件地设置活动类

来自分类Dev

有条件地禁用滚动到顶部的dom change react router

来自分类Dev

是否可以有条件地链接CSS字体?

来自分类Dev

有条件地链接范围的最佳方法

来自分类Dev

有条件地更改链接颜色?

来自分类Dev

显示动作在MVC中有条件地链接

来自分类Dev

有条件地更改Angular中按钮的链接

来自分类Dev

有条件地将组件导入Vue Router

来自分类Dev

尝试有条件地禁用链接,具体取决于通过javascript / jquery的链接文本

来自分类Dev

有条件的调用链接方法

来自分类Dev

有没有一种干净的方法可以有条件地为同一React Router路由加载和渲染不同的组件?

来自分类Dev

在Angular.js中有条件地显示链接

来自分类Dev

有条件地使用ASP.NET MVC Razor中的链接

来自分类Dev

有条件地将target =“ _ blank”添加到Angular JS的链接

来自分类Dev

如何在函数链接中有条件地调用函数?

来自分类Dev

TS2339尝试有条件地禁用链接时

来自分类Dev

有条件地在JavaScript循环的内部和外部链接Promise

来自分类Dev

有条件地链接Rails ActiveRecord查询中的where子句

来自分类Dev

有条件地替换摘录后的“更多内容”链接

来自分类Dev

在新标签页中有条件地打开链接

来自分类Dev

有条件地链接承诺 - 如何避免代码重复?

来自分类Dev

如何使用 jQuery 根据站点的语言有条件地显示链接

来自分类Dev

在 Vue Router 上有条件地映射路由组件

来自分类Dev

如何链接Django查询过滤器以按特定条件有条件地过滤

来自分类Dev

Pandas错误:有条件地更改单元格字符串值时的链接索引错误

来自分类Dev

是否有条件添加链接magento?

来自分类Dev

React Router深层链接

来自分类Dev

基于 Angular 5 observable.subscribe() 中的单个值有条件地返回用于将异步调用链接在一起

Related 相关文章

  1. 1

    Angular2 Router-有条件地隐藏链接

  2. 2

    使用React Router当前路由在菜单上有条件地设置活动类

  3. 3

    有条件地禁用滚动到顶部的dom change react router

  4. 4

    是否可以有条件地链接CSS字体?

  5. 5

    有条件地链接范围的最佳方法

  6. 6

    有条件地更改链接颜色?

  7. 7

    显示动作在MVC中有条件地链接

  8. 8

    有条件地更改Angular中按钮的链接

  9. 9

    有条件地将组件导入Vue Router

  10. 10

    尝试有条件地禁用链接,具体取决于通过javascript / jquery的链接文本

  11. 11

    有条件的调用链接方法

  12. 12

    有没有一种干净的方法可以有条件地为同一React Router路由加载和渲染不同的组件?

  13. 13

    在Angular.js中有条件地显示链接

  14. 14

    有条件地使用ASP.NET MVC Razor中的链接

  15. 15

    有条件地将target =“ _ blank”添加到Angular JS的链接

  16. 16

    如何在函数链接中有条件地调用函数?

  17. 17

    TS2339尝试有条件地禁用链接时

  18. 18

    有条件地在JavaScript循环的内部和外部链接Promise

  19. 19

    有条件地链接Rails ActiveRecord查询中的where子句

  20. 20

    有条件地替换摘录后的“更多内容”链接

  21. 21

    在新标签页中有条件地打开链接

  22. 22

    有条件地链接承诺 - 如何避免代码重复?

  23. 23

    如何使用 jQuery 根据站点的语言有条件地显示链接

  24. 24

    在 Vue Router 上有条件地映射路由组件

  25. 25

    如何链接Django查询过滤器以按特定条件有条件地过滤

  26. 26

    Pandas错误:有条件地更改单元格字符串值时的链接索引错误

  27. 27

    是否有条件添加链接magento?

  28. 28

    React Router深层链接

  29. 29

    基于 Angular 5 observable.subscribe() 中的单个值有条件地返回用于将异步调用链接在一起

热门标签

归档