我有这样的代码。我如何使用 JavaScript 中的函数式编程以更简洁、更优雅的方式编写它?我想摆脱嵌套的三元表达式。有任何想法吗?
props => ({
iconColor: props.isPriority ? (props.isCompleted ? variables.color.lightpurple : variables.color.purple ) : variables.color.gray3,
iconName: props.isPriority ? 'star-full' : 'star-empty',
}))
这是该代码的其余部分:
编辑:
const enhance: React$HOC<*, InitialProps> = compose(
withProps(props => ({
iconColor: props.isPriority ? (props.isCompleted ? variables.color.lightpurple : variables.color.purple) : variables.color.gray3,
iconName: props.isPriority ? 'star-full' : 'star-empty',
}))
)
原文由 MountainConqueror 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果那是您唯一的问题,那么解决方案很简单。创建您自己的条件函数:
现在你的 linter 不应该抱怨了。话虽如此,您应该在 linter 中禁用
[no-nested-ternary]
。你的 linter 认为嵌套条件语句不好,这有点愚蠢。