Dynamic className
Another way to do dynamic styling is through changing the class name directly. Here is how we change the className of a div (with className={myDivClasses}
) dynamically based on prop.index. After all, className is just a string with names that spereated by a space.
import React from "react"; import './ItemComponent.css'; const ItemComponent = (prop) => { let myDivClasses = 'margin5px'; if (prop.index % 2 === 0) { myDivClasses = myDivClasses + " myEvenDiv"; } else { myDivClasses = myDivClasses + " myOddDiv"; } return ( <div className={myDivClasses}> <span key={prop.index} onClick={prop.clickHandler}> name: {prop.name}, price: ${prop.price}, key: {prop.index}</span> </div> ); }; export default ItemComponent;
The css file:
.myOddDiv { background-color: sandybrown; } .myEvenDiv { background-color:#61dafb; } .margin5px { margin: 5px; }