【问题标题】:Malformed CSS string error when adding dynamic styles using react-jss使用 react-jss 添加动态样式时出现格式错误的 CSS 字符串错误
【发布时间】:2019-05-31 05:13:02
【问题描述】:

我将 CSS 样式存储在组件的状态中,如下所示:

state = {
    value: 1,
    indicatorStyles: {
      indicator: {
        backgroundColor: "rgb(224, 174, 97)",
      }
    },
};

当我尝试使用react-jssinjectSheet函数注入它们时:

const CustomTabs = ({classes, children}) => (
      <Tabs 
      value={value} 
      onChange={this.handleChange}
      classes={{root: classes.root, indicator: classes.indicator}}
      >
        {children}
      </Tabs>
    );
const StyledCustomTabs = injectSheet({...indicatorStyles, root: styles.tabsRoot})(CustomTabs);

我在控制台中收到以下错误:

警告:格式错误的 CSS 字符串“rgb(224, 174, 97)”

我没有在网上发现这样的错误,只是这个 github 关闭了issue。 我的目标是将动态样式 (indicatorStyles) 从 Material UI 库中注入到 Tabs 组件中。 每次选择选项卡时,组件的 state 都会更改,然后我想将 更新的样式 注入 Tabs 组件。 任何帮助将不胜感激!

更新! 由于下面的 Gabriele 的answer,上述警告已得到修复。

现在样式在应用我的自定义样式后被 react覆盖

有没有办法使用 react-jss 作为!important 添加 CSS 规则?

【问题讨论】:

    标签: reactjs dynamic material-ui jss


    【解决方案1】:

    我没有使用 react-jss,但看到他们的文档,您似乎应该直接传递类而不是 css 属性。

    类似

    indicatorStyles: {
        someStyle: {
          backgroundColor: "rgb(224, 174, 97)",
        },
    }
    

    【讨论】:

    • 它删除了错误消息,但仍然没有应用样式
    • @CharisTheo leftwidth 在内部被 Tabs 组件覆盖。但出于这个原因,他们提供了TabIndicatorProps。通过该属性传递您想要的 leftwidth 值,它应该可以工作。
    猜你喜欢
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    相关资源
    最近更新 更多