我是一个新的javascript(react)程序员,试图将三元运算符更改为normal,如果不是,这是我的问题:如果完成,我想向textDecoration属性添加行,' else‘我什么也不想要,三元运算符的代码正在运行,但我想将其更改为非三元(如果不是,则为normal),这是三元版本:
function Todo({todo}) {
return <div style={{
textDecoration: tod.isCompleted ? 'line-through' : ''
}} />;
}下面是我尝试做的事情:
function Todo({todo}) {
return <div style={{
if (todo.isCompleted) {
'line-through'
} else {
''
}} />;
}发布于 2020-08-05 01:23:54
我想知道使用三元组有什么问题?这是完全可以接受的。
无论如何,您不能在这样的JSX元素中包含if/else。我会将文本装饰提取到一个变量中,如下所示:
function Todo({todo}){
let textDecoration = '';
if(todo.isCompleted){
textDecoration = 'line-through';
}
return <div style={{textDecoration}}/>;
}有趣的是,这里有一项提议--就像你演示的那样。它还没有在javascript中出现,我也不希望它很快就会出现。但如果你使用巴别塔,你可以玩它,如果你想的话。这是do表达式。你可以这样使用它:
function Todo({todo}){
return <div style={{
textDecoration: do {
if(todo.isCompleted){
'line-through';
}
else {
'';
}
}
}}/>;
}不过,我并不真的推荐它。我只是想把它作为一点有趣的知识来提供。这里有一个巴别塔游乐场的链接:babel
你可以在这里阅读该提案:https://github.com/tc39/proposal-do-expressions
https://stackoverflow.com/questions/63251949
复制相似问题