找不到清晰的示例如何在带有styled-components
的css对象中使用函数。它不会引发错误,但是在提取道具时,背景不会添加到CSS输出中,如以下示例所示。
// Simple color function
const color = (error) => {
if (error) {
return 'red'
}
return 'black',
}
工程-CSS
const StyledInput = styled.input<InputProps>`
background: ${({ error }) => color(error)};`;
工作-CSS对象
const StyledInput = styled.input<InputProps>(props => ({
background: color(), // !!! NEED error from props
}));
不起作用-CSS对象
const StyledInput = styled.input<InputProps>(props => ({
background: `${({ error }) => color(error)}`,
}));
答案 0 :(得分:1)
要解决道具提取问题,您应该可以执行以下操作:
// Simple color function
const color = (error) => {
if (error) {
return 'red';
}
return 'black';
};
const StyledInput = styled.input<InputProps>(({ error, ...props }) => ({
background: color(error),
}));