【发布时间】:2020-09-17 02:31:28
【问题描述】:
基本上我想创建一个可重用的组件,可以在反应中从外部稍微修改:
SomewhereElse.tsx
...
<FooComponent width={200}>
...
FooComponent.tsx
interface IFooProps {
//default width of 150px
width?: 150;
//default margin of 5px
margin?: 5;
}
interface IFooState{
checked: boolean;
}
class FooComponent extends Component<IFooProps, IFooState> {
constructor(props: IFooProps) {
super(props);
...
}
...
render(): ReactElement {
return (
<div className="foo-component"
data-width={this.props.width + 'px'}
>
...
FooComponent.scss
.foo-component {
...
width: attr(data-width length);
...
但是在运行应用程序(chrome)时它总是给我以下错误:
...请考虑我需要一个“数字”作为属性,因为我正在根据该数字对某些内部组件进行一些计算,因此所有内容都可以组合在一起。
编辑:
使用“style”对我不起作用,因为我的 scss 中有一些 ::before ::after 功能在使用 style 时会损坏,因为它们偶尔会根据宽度修改“right:”。
为了更好地理解,这是我的基础: https://www.sitepoint.com/react-toggle-switch-reusable-component/
【问题讨论】:
-
data-width?这是为了什么..? -
重置 --var() css customproperties 以更新规则的值可能更容易。可能的相关帖子stackoverflow.com/questions/59231839/… & stackoverflow.com/questions/46323117/…
-
@wentjun 它是一个属性选择器。您可以使用它们为不同的组件动态定义值或插入专门为某个组件的值。
-
@Spektakulatius Yepp 我知道是……!我只是想知道你为什么使用 data- 属性,因为它在 React 中不常用,因为还有其他对 React 友好的方式来绑定数据/样式
标签: css reactjs typescript react-native sass