作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 React 的新手,我正在使用以前硬编码颜色的组件。我希望能够通过 Prop 传递颜色。
我还使用 styledComponents 来设置样式,如果这有什么不同的话。
&[checkedcolor] {
/*&[checkedcolor="orange"] {*/
&:checked {
+ .lbl {
border-color: ${props => props.theme.borderColor};
color: ${props => props.theme.color};
}
}
}
}
&[uncheckedcolor] {
/*&[uncheckedcolor="lightgray"] {*/
+ .lbl {
color: ${props => props.theme.color};
}
}
}
}
}`;
这是我要传递 Prop 的样式部分。我不确定我这样做是否正确..“主题”也是从 themes.ts 文件中提取的,该文件应该由主题提供者从另一个文件传递。注释掉的部分是之前对样式进行硬编码的地方。
render() {
var { className, type, radioClasses, label, ...other } = this.props;
return (
<RadioWrapper className={"radio-switch-item-wrapper " + radioClasses}>
<input type="radio" className="ace radio-switch-item" {...other} />
<span className="lbl">{" " + this.props.label}</span>
</RadioWrapper>
);
}
这是渲染图。我不确定这里发生了什么。 Radiowrapper 是样式的名称。另外,我正在处理其他人的代码,这就是为什么我不完全清楚发生了什么。
最佳答案
你的样式文件看起来像这样
const RadioWrapper = styled.div`
... otherstyles
color: ${props => props.color}
`
组件文件看起来像这样
render() {
return(
<RadioWrapper color="#FFFFFF"/>
);
}
关于html - React.Js/ typescript : How can I pass colors through props?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50826115/
我是一名优秀的程序员,十分优秀!