Я буду рад помочь вам с условно изменяющимися стилями компонентов на основе реквизита. Вот несколько методов, которые вы можете использовать:
- Встроенный условный рендеринг. Вы можете использовать тернарный оператор или логические операторы для условного применения стилей на основе реквизитов непосредственно в атрибуте стиля компонента. Например:
const StyledComponent = styled.div`
color: ${props => props.isActive ? 'red' : 'blue'};
`;
- Стилизованные реквизиты компонента. Вы можете определить различные стилизованные компоненты для каждого возможного значения реквизита и визуализировать соответствующий на основе значения реквизита. Например:
const StyledComponent = styled.div`
color: blue;
`;
const ActiveStyledComponent = styled(StyledComponent)`
color: red;
`;
const MyComponent = ({ isActive }) => {
const Component = isActive ? ActiveStyledComponent : StyledComponent;
return <Component>Hello!</Component>;
};
- Классы CSS: вы можете условно применять к компоненту разные классы CSS на основе реквизитов. Определите различные стили в своем CSS-файле и переключите соответствующий класс на основе значения свойства. Например:
const StyledComponent = styled.div`
color: blue;
&.active {
color: red;
}
`;
const MyComponent = ({ isActive }) => {
return <StyledComponent className={isActive ? 'active' : ''}>Hello!</StyledComponent>;
};
Это всего лишь несколько примеров того, как можно условно изменять стили компонентов на основе реквизитов. В зависимости от ваших конкретных требований и варианта использования вы можете выбрать один метод среди других.