【发布时间】:2017-06-17 12:15:48
【问题描述】:
我使用styled-components 作为 React 样式的解决方案。他们有一个很好的方法,使用模板文字来插入 CSS。模板文字被传递给组件的 props,以便您可以执行以下操作:
const PasswordsMatchMessage = styled.div`
background: ${props => props.isMatching ? 'green' : 'red'};
`
结果是一个组件,它根据isMatching 的值呈现带有绿色或红色背景的div 标签。以上将通过 JSX 像这样使用:
<PasswordsMatchMessage isMatching={doPasswordsMatch}>...</PasswordsMatchMessage>
每次props 的值改变时,这个字符串都会被重新插值。这终于让我想到了我的问题:
每次插入模板文字时,模板文字中定义的箭头函数是否会重新定义?
如果是这样,那么我可能会考虑在模板字面量之外创建函数并将其传入,例如
const PasswordsMatchMessage = styled.div`
background: ${isMatchingFn};
`
【问题讨论】:
-
我不明白为什么那行不通。你测试过吗?
-
@KeithA 它确实有效,这不是我的问题。我刚刚编辑了我的帖子以使问题更清楚,因为它有点被埋没了;)
-
嗯。我不知道。你的问题有原因吗?
-
这将是一个潜在的性能瓶颈
标签: javascript reactjs ecmascript-6 template-literals styled-components