React Native 如何在样式化组件中的组件属性内使用开关盒?

3npbholx  于 2022-12-24  发布在  React
关注(0)|答案(1)|浏览(123)

我正在尝试根据组件的属性来处理图标的颜色变化,但是我不知道如何编写它。
我可以直接在样式项中执行此操作,如下所示:code example switch case styled component
但是在一个组件的属性里面,我写不出来,不起作用,下面是我的尝试:code example switch case styled component through attrs
我担心的是:现在我只有两个颜色图标的变体(最后一个例子),但我可能会有更多的未来。今天,在第二种情况下,当我希望它改变颜色(如果它不同于类型中的2个选项)在应用程序的另一个地方,我必须直接改变它:change icon color directly
在第二种情况下,我如何使用第一种情况下使用的相同策略?
谢谢!
我想对两者使用相同的策略

tjvv9vkg

tjvv9vkg1#

你可以在你的属性之外创建一个函数,并像这样调用它。

const getIconColor = (type) => {
  switch(type) {
  // .... do your logic
  }
}

//...

const Icon = styled(MaterialIcons).attrs(({theme, type}) => ({
  color: getIconColor(type)
}))

相关问题