样式化组件在样式化对象中使用函数
Styled-components use function in styled object
无法找到如何在 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)}`,
}));
要解决道具提取问题,您应该可以这样做:
// Simple color function
const color = (error) => {
if (error) {
return 'red';
}
return 'black';
};
const StyledInput = styled.input<InputProps>(({ error, ...props }) => ({
background: color(error),
}));
无法找到如何在 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)}`,
}));
要解决道具提取问题,您应该可以这样做:
// Simple color function
const color = (error) => {
if (error) {
return 'red';
}
return 'black';
};
const StyledInput = styled.input<InputProps>(({ error, ...props }) => ({
background: color(error),
}));