I want to incorporate 3 more conditional classes into this...
<li className={`list-group-item ${todo.completed ? " strike-through" : ""}`}
I now want ${todo.priority}
to be included/alongside with this, which will assign classes:
"alert alert-info", "alert alert-warning", and "alert alert-danger" based on corresponding values in a drop down: 1, 2, 3.
Can someone help me with this, thank you in advance!
Others have already provided some more "flexible" solutions, so I'll just add the quick and dirty one:
<li className={`list-group-item ${todo.completed ? " strike-through" : ""} ${todo.priority === 1 ? "alert alert-info" : (todo.priority === 2 ? "alert alert-warning" : "alert alert-danger")}`} />
For readability's sake:
const completed = todo.completed ? " strike-through" : "";
const priority = todo.priority === 1 ? "alert alert-info" : (todo.priority === 2 ? "alert alert-warning" : "alert alert-danger");
...
<li className={`list-group-item ${completed} ${priority}`} />
I recommend the classnames
package. It's a widely-used package and serves a straightforward purpose. Any key whose value is truthy will make it into the final class name:
import cx from 'classnames';
<li className={cx('list-group-item', {
'alert alert-danger': value === 3,
'alert alert-info': value === 1,
'alert alert-warning': value === 2,
'strike-through': todo.completed,
})} />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With