Quiero usar la siguiente propiedad css en el componente Navlink. En el archivo CSS, la propiedad se puede escribir como se indica a continuación, que usa gradient .
.ele { background-image: linear-gradient(45deg, #808080 25%, transparent 25%), linear-gradient(-45deg, #808080 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #808080 75%), linear-gradient(-45deg, transparent 75%, #808080 75%); background-size:20px 20px; background-position:0 0, 10px 0, 10px -10px, 0px 10px; } Mientras uso en reaccionar tomándolos como una variable tabStyle como se muestra a continuación, sé que:
background-size de fondo a backgroundSizebackground-image de fondo cambia a backgroundImagebackground-position de fondo a backgroundPosition pero, ¿cómo podemos usar linear-gradient ?
Código NavbarJs:
import React from "react"; import { NavLink, useLocation } from "react-router-dom"; const NavbarComponent = () => { let location = useLocation(); let tabStyle = { backgroundImage: linearGradient('45deg', '#808080 25%', 'transparent 25%'), linearGradient('-45deg', '#808080 25%', 'transparent 25%'), linearGradient('45deg', 'transparent 75%', '#808080 75%'), linearGradient('-45deg', 'transparent 75%', '#808080 75%'); } return ( <> <nav variant="pills" className="navbar" style={{ borderBottom: "1px solid white" }}> <ul className="nav nav-pills"> <li> <NavLink style={location.pathname === "/" ? tabStyle:{}} to="/">Home</NavLink> </li> <li> <NavLink style={location.pathname === "/about" ? tabStyle:{}} to="/about">About</NavLink> </li> <li> <NavLink style={location.pathname === "/articles-list" ? tabStyle:{}} to="/articles-list">Articles</NavLink> </li> </ul> </nav> </> ); }; export default NavbarComponent;no, no necesita usar la sintaxis de Camelcase para funciones css como linear-gradient solo use una cadena simple
let tabStyle = { backgroundImage: "linear-gradient(45deg, #808080 25%, transparent 25%)", "linear-gradient(-45deg, #808080 25%, transparent 25%)", "linear-gradient(45deg, transparent 75%, #808080 75%)", "linear-gradient(-45deg, transparent 75%, #808080 75%)"; }Debería ser simplemente "linear-gradient()" como un valor de cadena de backgroundImage:
Echando un vistazo rápido, parece que hay un error de sintaxis con el objeto de estilos que está pasando. Pruebe algo como
export default function App() { const styles = { background: ` linear-gradient(45deg, #808080 25%, transparent 25%), linear-gradient(-45deg, #808080 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #808080 75%), linear-gradient(-45deg, transparent 75%, #808080 75%) ` }; return ( <div className="App" style={true ? styles : {}}> <h1>Hello CodeSandbox</h1> <h2>Start editing to see some magic happen!</h2> </div> ); }Funciona en mi codesandbox: https://codesandbox.io/s/optimistic-edison-nqynx?file=/src/App.js