¿Puede alguien ayudarme con este problema? Quiero que esos enlaces internos no se abran en una nueva pestaña de ventana. Si solo tengo un elemento en el código, funciona bien, pero tan pronto como agrego otro enlace, es decir, 'gobernanza', aparece este error:
246:89 error Unexpected constant condition no-constant-conditionAquí está el código:
export default function Menu(props) { return ( <StyledMenu tabIndex={0}> <StyledMenuTitle> <span style={{ marginRight: '0.25rem' }}>{props.data.name} </span> <MenuFlyout> {props.data.sublinks.map((item, index) => { return ( <StyledMenuItem tabindex={index} key={index}> -> 246 {item.link.split('/').slice(-1)[0] === 'about', 'governance', 'people', 'blog' ? ( <StyledExternalLink href={item.link}> <StyledTitle>{item.name}</StyledTitle> </StyledExternalLink> ) : ( <StyledExternalLink href={item.link} target="_blank" rel="noopener noreferrer"> <StyledTitle>{item.name}</StyledTitle> {item.description && <StyledDescription>{item.description}</StyledDescription>} </StyledExternalLink> )} </StyledMenuItem> ) })} </MenuFlyout> </StyledMenuTitle> </StyledMenu> ) }Este código:
someValue === 'about', 'governance', 'people', 'blog' ? 'x' : 'y'se interpreta como 4 expresiones separadas, como:
someValue === 'about'; // returns true or false 'governance'; // returns 'governance' 'people'; // returns 'people' 'blog' ? 'x' : 'y'; // returns 'x'Entonces, básicamente, los primeros 3 son solo expresiones inútiles, porque no haces nada con los valores devueltos.
El último es el valor realmente utilizado en su código, pero siempre devuelve 'x' , porque 'blog' siempre es verdadero .
Entonces, ¿podría reemplazar toda la condición 'blog' ? 'x' : 'y'; por solo el valor 'x' en su código.
Su código, incluido el "inútil", es Javascript válido, pero alguna herramienta de validación de código que está utilizando, probablemente ESLint , no permite una condición que siempre devolverá el mismo valor, porque obviamente no necesitaría una condición en todo en tales casos.