从外部组件单击按钮时,在一个组件中打开特定的选项卡

阿什法拉菲

我有一个HomePage具有子组件的组件Platform在平台组件中,有一些链接,单击这些链接后,应在浏览器中打开一个新选项卡,这将打开另一个组件中的特定选项卡PlatformFeatures在PlatformFeatures组件中,有一个Tab组件,其中每个选项卡将具有唯一的选项卡编号或索引和url。该网址将与平台组件中链接的网址相同(我想)。事情是,我将单击Platform组件的链接,它将使用PlatformFeatures组件中的Tab组件的链接打开特定的选项卡。这将在浏览器的新选项卡中打开,并且浏览器URL将具有特定标签的链接可能会在实际链接之后添加为哈希。这样,唯一链接就可以与任何人共享,并且如果将URL粘贴到浏览器中,它将打开选项卡Component的特定选项卡。这是我的HomePage组件代码:

import React from 'react';
import PropTypes from 'prop-types';
import Platform from './Platform';

const HomePage = ({ additionalProps }) => {
  const { routes } = additionalProps;

  return (
    <div className="homepage">
      <Platform routes={routes} />
    </div>
  );
};

HomePage.defaultProps = {
  additionalProps: PropTypes.shape({
    routes: null,
  }),
};

HomePage.propTypes = {
  additionalProps: PropTypes.shape({
    routes: PropTypes.shape({
      features: {
        platform: PropTypes.string,
      },
  }),
};

export default HomePage;

这是平台组件:

    import React from 'react';
    import PropTypes from 'prop-types';
    import { I18nText } from '@wtag/react-comp-lib';
    import profile from 'affiliateImages/person-24px.svg';
    import search from 'affiliateImages/search-24px.svg';
    import booking from 'affiliateImages/flight-24px.svg';
    
    const Platform = () => {
    
      const features = [
        {
          id: 0,
          icon: profile,
          name: <I18nText id="homepage.features.profiles.title" />,
          description: <I18nText id="homepage.features.profiles.description" />,
          link: linkToFeatures1,
        },
        {
          id: 1,
          icon: search,
          name: <I18nText id="homepage.features.search.title" />,
          description: <I18nText id="homepage.features.search.description" />,
          link: linkToFeatures2,
        },
        {
          id: 2,
          icon: booking,
          name: <I18nText id="homepage.features.booking.title" />,
          description: <I18nText id="homepage.features.booking.description" />,
          link: linkToFeatures3,
        },
      ];
    
      return (
        <div className="homepage__platform-section">
          <div className="container">
            <div className="homepage__platform-section-header">
              <I18nText id="homepage.features.header.title" />
            </div>
            <div className="grid">
              {features.map(({ icon, name, description, link, id }) => (
                <div
                  className="col-xlg-4 col-lg-4 col-md-6 col-sm-6 col-xs-12 col-xxs-12"
                  key={id}
                >
                  <div>
                    <span>
                      <img
                        src={icon}
                        alt="icon"
                        className="homepage__platform-section-icon"
                      />
                    </span>
                    <span className="homepage__platform-section-name">{name}</span>
                  </div>
                  <div className="homepage__platform-section-description">
                    {description}
                  </div>
                  <div>
                    <a href={link} className="homepage__platform-section-link">
                      <I18nText id="homepage.features.read.link" />
                    </a>
                  </div>
                </div>
              ))}
            </div>
          </div>
        </div>
      );
    };
    
    export default Platform;

这是PlatformFeatures组件

import React from 'react';
import { RTabs, I18nText } from '@wtag/react-comp-lib';
import Profiles from './Profiles';
import Search from './Search';
import Booking from './Booking';

const features = [
  {
    tabNum: 0,
    title: (
      <I18nText
        id="features.platform.profiles"
        className="platform-features__profiles-tab"
      />
    ),
    content: <Profiles />,
  },
  {
    tabNum: 1,
    title: (
      <I18nText
        id="features.platform.search"
        className="platform-features__search-tab"
      />
    ),
    content: <Search />,
  },
  {
    tabNum: 2,
    title: (
      <I18nText
        id="features.platform.booking"
        className="platform-features__booking-tab"
      />
    ),
    content: <Booking />,
  },
];

const getItems = () => {
  return features.map(({ title, content }, index) => ({
    key: index,
    title,
    content,
  }));
};

const PlatformFeatures = () => {
  return (
    <div className="platform-features__tabs">
      <RTabs isVertical={true} items={getItems()} selectedTabKey={2} />
    </div>
  );
};

export default PlatformFeatures;

RTabs组件中的selectedTabKey道具中传递的数字是features数组中特定项目的索引号。因此,当组件在浏览器的新页面中加载时,selectedTab将自动打开。我想我们需要创建一个函数,该函数将采用与Platform组件中单击的链接匹配的selectedKey索引,并将其传递给此处。我需要一些建议和代码示例,以便使用reactjs实现所有这些功能。

这是我想要实现的gif效果:http : //g.recordit.co/W5nrNZAuOd.gif

拉斐尔

我不确定是否了解所有内容,但就我所了解的而言,您应该使用react-router https://reactrouter.com/web/example/嵌套嵌套路由。

您将能够为功能指定路线。然后,您将可以在不同的标签之间导航。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击链接按钮时打开一个新选项卡

来自分类Dev

如何在单击按钮时打开特定的选项卡式活动?

来自分类Dev

单击按钮打开一个新选项卡

来自分类Dev

单击触发输入聚焦的另一个选项卡中的按钮时,动态更改选项卡活动

来自分类Dev

如何通过单击按钮启用一个特定的选项卡?

来自分类Dev

如何在另一个选项卡中打开外部链接?

来自分类Dev

打开一个选项卡时如何删除其他选项卡

来自分类Dev

单击另一个组件中的按钮时,如何显示/隐藏React组件?

来自分类Dev

我有2个UI标签。我需要激活一个特定的选项卡,然后单击该选项卡之外的按钮

来自分类Dev

我可以使用Firefox附加组件在选项卡页眉上放置一个按钮吗?

来自分类Dev

使用angularjs选项卡时如何在单击按钮时移动到下一个选项卡

来自分类Dev

如何通过另一个活动按钮单击事件在viewpager中打开特定片段页面

来自分类Dev

在Ionic 2中,如何在单击另一个选项卡菜单应用程序图标时隐藏一个选项卡?

来自分类Dev

单击按钮时打开新选项卡

来自分类Dev

jQuery UI选项卡:从选项卡中链接到下一个/特定选项卡

来自分类Dev

jQuery UI选项卡:链接到选项卡中的下一个/特定选项卡

来自分类Dev

当按下按钮或按键时,如何在AvalonDock中从一个选项卡转到另一个选项卡?

来自分类Dev

在包含链接的选项卡的最右侧,在新选项卡中打开一个单击鼠标中键的链接

来自分类Dev

通过单击jQuery UI选项卡上的+按钮来复制最后一个选项卡

来自分类Dev

在同一窗口和同一选项卡中的Mozilla附加组件打开链接

来自分类Dev

在具有多个视图模型的选项卡中单击按钮,导航到另一个选项卡不起作用

来自分类Dev

在Java中单击按钮时,自动单击到特定选项卡

来自分类Dev

如何从AppDelegate打开特定的选项卡视图

来自分类Dev

使用 jQuery 在页面加载时打开特定的引导程序选项卡

来自分类Dev

单击HTML按钮时,在新的浏览器选项卡中打开URL

来自分类Dev

cmder:在已打开的选项卡的目录中打开一个新的选项卡

来自分类Dev

根据条件调用另一个组件中的函数,无论选项卡是否处于活动状态

来自分类Dev

使用ASP.NET Webforms在另一页上打开特定选项卡

来自分类Dev

用户单击时在新选项卡中打开链接

Related 相关文章

  1. 1

    单击链接按钮时打开一个新选项卡

  2. 2

    如何在单击按钮时打开特定的选项卡式活动?

  3. 3

    单击按钮打开一个新选项卡

  4. 4

    单击触发输入聚焦的另一个选项卡中的按钮时,动态更改选项卡活动

  5. 5

    如何通过单击按钮启用一个特定的选项卡?

  6. 6

    如何在另一个选项卡中打开外部链接?

  7. 7

    打开一个选项卡时如何删除其他选项卡

  8. 8

    单击另一个组件中的按钮时,如何显示/隐藏React组件?

  9. 9

    我有2个UI标签。我需要激活一个特定的选项卡,然后单击该选项卡之外的按钮

  10. 10

    我可以使用Firefox附加组件在选项卡页眉上放置一个按钮吗?

  11. 11

    使用angularjs选项卡时如何在单击按钮时移动到下一个选项卡

  12. 12

    如何通过另一个活动按钮单击事件在viewpager中打开特定片段页面

  13. 13

    在Ionic 2中,如何在单击另一个选项卡菜单应用程序图标时隐藏一个选项卡?

  14. 14

    单击按钮时打开新选项卡

  15. 15

    jQuery UI选项卡:从选项卡中链接到下一个/特定选项卡

  16. 16

    jQuery UI选项卡:链接到选项卡中的下一个/特定选项卡

  17. 17

    当按下按钮或按键时,如何在AvalonDock中从一个选项卡转到另一个选项卡?

  18. 18

    在包含链接的选项卡的最右侧,在新选项卡中打开一个单击鼠标中键的链接

  19. 19

    通过单击jQuery UI选项卡上的+按钮来复制最后一个选项卡

  20. 20

    在同一窗口和同一选项卡中的Mozilla附加组件打开链接

  21. 21

    在具有多个视图模型的选项卡中单击按钮,导航到另一个选项卡不起作用

  22. 22

    在Java中单击按钮时,自动单击到特定选项卡

  23. 23

    如何从AppDelegate打开特定的选项卡视图

  24. 24

    使用 jQuery 在页面加载时打开特定的引导程序选项卡

  25. 25

    单击HTML按钮时,在新的浏览器选项卡中打开URL

  26. 26

    cmder:在已打开的选项卡的目录中打开一个新的选项卡

  27. 27

    根据条件调用另一个组件中的函数,无论选项卡是否处于活动状态

  28. 28

    使用ASP.NET Webforms在另一页上打开特定选项卡

  29. 29

    用户单击时在新选项卡中打开链接

热门标签

归档