对于何时应该使用 attrs 构造函数在 styled-components 中传递 props,我有点困惑:
const Example = styled.div.attrs(props => ({
style: {
color: props.color
}
}))``;
当我应该直接通过它们时:
const Example = styled.div`
color: ${props => props.color}
`
我知道第一种方法是更改内联样式,第二种方法是生成一个类,但我不确定这些差异的含义。
我在控制台中看到一个错误,上面写着“为组件 styled.div 生成了超过 200 个类。考虑使用该attrs方法以及用于频繁更改样式的样式对象。”
但同时它在文档中说“经验法则是,当您希望样式组件的每个实例都具有该道具时使用 attrs,并在每个实例需要不同的道具时直接传递道具。”
为什么不一直使用其中一种方法呢?我应该什么时候使用每一个,为什么?