微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Grommet 中不同断点的 edgeSize 问题

如何解决Grommet 中不同断点的 edgeSize 问题

我是 grommet 的新手,遇到了问题。 我正在尝试为 grommet v2.14.0 中的不同断点设置不同的 edgeSize 值

在这里你可以找到主题代码 ->

export const v3theme = {
  global: {
    edgeSize: {
      none: "0px",small: "23px",medium: "24px",large: "25px",xlarge: "26px"
    },breakpoints: {
      xsmall: {
        value: 478,edgeSize: {
          none: "0px",small: "1px",medium: "2px",large: "4px",xlarge: "5px"
        }
      },small: {
        value: 767,small: "6px",medium: "7px",large: "8px",xlarge: "9px"
        }
      },medium: {
        value: 991,edgeSize: {
          none: "10px",small: "11px",medium: "12px",large: "13px",xlarge: "14px"
        }
      },large: {
        value: 1440,small: "15px",medium: "16px",large: "17px",xlarge: "18px"
        }
      },xlarge: {
        edgeSize: {
          none: "0px",small: "19px",medium: "20px",large: "21px",xlarge: "22px"
        }
      }
    }
  }
};

还有一个基本的 Box 组件,其中包括 pad="large"

<grommetBox pad={{ horizontal: "large" }}>test</grommetBox>

断点运行良好。但填充不是。

预期行为 在 xsmall 断点处,padding-left/right 必须为 4px 在小断点处,padding-left/right 必须为 8px 在中断点处,padding-left/right 必须为 13px 在 largebreakpoint 处,padding-left/right 必须为 17px 在 xlarge 断点处,padding-left/right 必须为 21px

实际行为 只有小断点的 edgeSize 才能正常工作。 here is the screenshot

在其他断点大小上,代码调用认 global.edgeSize.large 值,在本例中为 25px。 here is the screenshot

而且,我还从 ShimiSun 找到了一个 SandBox 示例并在上面测试了我的代码,问题仍然存在。 https://codesandbox.io/s/grommet-ts-textinput-type-forked-bcrle

大概是与responsiveBreakpoint道具有关。当我把它改成responsiveBreakpoint:"xsmall"

然后,xsmall 的值开始起作用。

简而言之,我想将所有断点定义为响应式。

你知道我做错了什么,还是一种常见的行为?

提前致谢。

解决方法

我觉得你很准

可以推测,它与 responsiveBreakpoint 道具有关。当我把它改成responsiveBreakpoint:"small"

由于您要定义在 grommet 的基本主题(“xsmall”等)中不存在的新断点,因此您需要重新定义 responsiveBreakpoint,以便 grommet 知道实际断点以触发布局更改(边框、方向、间隙、边距、填充和圆角)。

如果这对您有用,那么这应该是您的答案。

话虽如此,请注意,向您的应用程序添加更多断点会导致布局处理更加复杂,因此如果没有必要,请避免这样做。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?