Hay un componente de pestaña con varias pestañas, es necesario que cuando se haga clic en una de esas pestañas para abrir un enlace en una nueva pestaña en el navegador.
Este es el código:
import { LocationDescriptor } from 'history'; import React, { AnchorHTMLAttributes } from 'react'; import { NavLink } from 'react-router-dom'; export interface ITabLinkItem extends AnchorHTMLAttributes<HTMLAnchorElement> { link: LocationDescriptor; name: string; disabled?: boolean; } export interface TabLinkProps { tabs: Array<ITabLinkItem>; } export function TabsLink({ tabs }: TabLinkProps) { const preventClick = (event: React.MouseEvent, disabled = false) => { disabled && event.preventDefault(); }; const clickTab = (event: React.MouseEvent, tab: ITabLinkItem) => { preventClick(event, tab.disabled); const { link } = tab; if (link === '/test') { // OPEN IN NEW TAB } }; return ( <div> {tabs.map((tab: ITabLinkItem, index: number) => <NavLink key={index} to={tab.link} onClick={(event: React.MouseEvent) => clickTab(event, tab)} > {tab.name} </NavLink> )} </div> ); } export default TabsLink;¿Es una forma de activar la apertura de esa pestaña cuando la condición es verdadera?
No puede mantener el estado en una nueva pestaña (por lo que tendrá que usar cookies/estado local o algunas conexiones de base de datos ingeniosas, etc. si lo desea). Entonces, si este es el caso y la nueva pestaña puede ser 'tonta', ¿por qué no usar un enlace con target='_blank'?