Используйте style
вместо bgcolor
, так как он больше не поддерживается в HTML5. Даже если вы попробуете это без условной логики, bgcolor
не повлияет на <td>
, независимо от React. В W3Schools :
Атрибут bgcolor не поддерживается в HTML5. Использовать CSS
вместо этого.
Установка свойства style
условно в функции render()
. В этом примере используется условный подход @ OlivierBoissé для условной установки значения, но вы действительно можете использовать любой условный подход, который вам удобен, и ESLint не жалуется. Вы можете использовать CSS inherit
в качестве значения по умолчанию при работе с background-color
:
// default
let backgroundColor = 'inherit';
if (arrayOne.includes(value)) {
backgroundColor = 'red';
} else if (arrayTwo.includes(value)) {
backgroundColor = 'blue';
}
{/* or if you need one color to take precedence when value is in both arrays
if (arrayOne.includes(value)) {
backgroundColor = 'red';
}
if (arrayTwo.includes(value)) {
backgroundColor = 'blue';
}
*/}
<Table.Cell
key={value}
selectable
style={{backgroundColor}}
>
{value}
</Table.Cell>
В качестве альтернативы вы также можете использовать className
вместо style
:
.foo { background-color: red; }
.bar { background-color: blue; }
let backgroundColor = '';
if (arrayOne.includes(value)) {
backgroundColor = 'foo';
} else if (arrayTwo.includes(value)) {
backgroundColor = 'bar';
}
<Table.Cell className={backgroundColor} ...>
Вот рабочий StackBlitz пример.
Надеюсь, это поможет!