首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有样式的组件和波兰如何包括一个功能作为颜色?

有样式的组件和波兰如何包括一个功能作为颜色?
EN

Stack Overflow用户
提问于 2018-06-23 17:12:16
回答 1查看 675关注 0票数 0

我使用样式-组件和抛光,以使颜色变暗/减轻。

下面是我现在工作的内容:

代码语言:javascript
复制
colors = ['#eee', '#ccc', '#ddd'];

const calcBorderColor = ({ currentPosition }) => {
  const color = colors[(currentPosition) % colors.length];
  return color;
};

const Choice = styled.button`
  border-color: ${calcBorderColor};
`;

我被困在这里:

代码语言:javascript
复制
&:hover {
    border-color: ${darken(0.1, calcBorderColor)};
}

悬停样式是Passed an incorrect argument to a color function, please pass a string representation of a color.中的错误

如何与calcBorderColor函数一起使用抛光暗光?

EN

回答 1

Stack Overflow用户

发布于 2018-06-25 21:59:05

使用darken函数时只会收到错误,因为它需要一个字符串作为第二个参数,相反,您传递的是calcBorderColor的函数声明,如果对其进行记录,您可以看到如下所示:

代码语言:javascript
复制
calcBorderColor(_ref) {
    var currentPosition = _ref.currentPosition;

    var color = colors[currentPosition % colors.length];
    return color;
}

如果你:

代码语言:javascript
复制
console.log(typeof calcBorderColor);

您将得到它的类型函数。

这是因为polished库函数是通过使用静态输入的。而且您不会在第一个border-color中得到错误,因为样式组件正在跳过以呈现函数声明,可能留下了按钮元素的默认border-color

因此,您需要在对currentPosition函数的两个调用中传递一个具有属性calcBorderColor的对象作为参数,以便使其可用并避免该错误。

代码语言:javascript
复制
const Choice = styled.button`
  border-color: ${calcBorderColor({currentPosition: 1})};

  &:hover {
    border-color: ${darken(0.1, calcBorderColor({ currentPosition: 0}))};
  }
`;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51003397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档