我在这里有一个沙箱:
https://codesandbox.io/s/p2wy9pp8lx
我有一些这样的动态样式:
function day(first, last) {
var firstIndex;
var lastIndex;
var weekDays = [
{ index: 0, name: 'Monday' },
{ index: 1, name: 'Tuesday' },
{ index: 2, name: 'Wednesday' },
{ index: 3, name: 'Thursday' },
{ index: 4, name: 'Friday' },
{ index: 5, name: 'Saturday' },
{ index: 6, name: 'Sunday' }
];
weekDays.forEach(function (item) {
firstIndex = item.name.toLowerCase() === first.toLowerCase() ? item.index : firstIndex;
lastIndex = item.name.toLowerCase() === last.toLowerCase() ? item.index : lastIndex;
});
if (firstIndex === undefined || lastIndex === undefined) { return; }
var days = [];
weekDays.forEach(function (item) {
if (item.index >= firstIndex && item.index <= lastIndex) {
days.push(item.name);
}
});
console.log(days.join(', '));
}
对于像这样的课程:
const styles = {
fooDisplay: props => ({
display: props.variant === "foo" ? "block" : "none"
}),
}
这就是我想要的。
虽然使用字符串比较是实现此目的的正确方法吗?还是对性能不利?
答案 0 :(得分:1)
我认为最佳做法是在导入元素时在每个元素上导出变量常量,这样的示例如下:
<Button variant={Button.Variant.PRIMARY}> This is a primary button </Button>
在Button上,您可以使用相同的常量this.props.variant === Variant.Primary
字符串比较没有真正的性能问题,它只是获得相同解决方案的一种弱类型方法,看起来有点混乱。这种方法意味着没有错误的余地,而且意图很明显。
如果您需要更多代码来理解我的意思,请告诉我