Есть ли способ расширить каждый стилизованный компонент, кроме миксина, возможно, с помощью некоторого промежуточного программного обеспечения?Например, в настоящее время мы делаем это для каждого компонента в нашем наборе пользовательского интерфейса, чтобы обрабатывать крайние случаи, когда нам нужно иметь запас, отличный от того, что было жестко задано:
const Heading = styled.span`
margin: 0;
${overrideMixin};
`;
const getValues = (values, { spacing }) =>
values.map(val => (val ? `${rem(spacing[val])}` : "0")).join(" ");
const overrideMixin = ({ margin, theme }) =>
margin ? `margin: ${getValues(margin, theme)};` : null;
export default Heading;
Затем мы используем его следующим образом:
<Heading margin={['md']} />
Проблема в том, что мы должны вставить этот миксин в каждый компонент (а это может быть около 100) - было бы хорошо, если бы это можно было где-то сделать (промежуточное ПО).