对与号的条件onClick做出反应

时间:2019-02-20 15:03:01

标签: javascript reactjs ecmascript-6 onclick

如果要allowed=true,我要编辑卡。我想出了这个解决方案:

const editCard = (onEdit, id, allowed) => {
    if (allowed) {
        onEdit(id);
    }
};

<Card onClick={() => editCard(onEdit, id, allowed)}>Card</Card>

我想像这样制作一个更简单的onClick:

<Card onClick={() => allowed && onEdit(id)}>Card</Card>

我可以像&一样使用onClick吗?如果allowed=true然后进行编辑,否则onClick不应执行任何操作。

这似乎可行,但我不知道它是否always可行。这会导致错误吗?有没有更好的方法来实现此Click事件?

2 个答案:

答案 0 :(得分:4)

是的,它将按预期工作:)

x=input("range from") y=input("range to") w=input("divisible by") z=input("divisible by") def divisible(x,y,w,z): for i in range(x,y): if (i % w == 0) and (i % z == 0): T.append(str(i)) return T print('\n'.join(T)) def divisible(x,y,w,z): T=[] for i in range(x,y): if (i % w == 0) and (i % z == 0): T.append(str(i)) return ('\n'.join(T)) print(divisible(1500,2701,5,7)) 调用true && something()函数

something仅返回false && something()而未调用false

答案 1 :(得分:1)

是的,那将起作用。但您也可以这样使用:

<Card allowed onClick={() => onEdit(id)}>Card</Card>

然后检查允许的道具。

仅使用allowed等效于allowed={true}。如果您要发送的允许选项为false,则无需传递道具。

但是,在您的情况下,它是动态的。因此,您可以像这样使用:

<Card allowed={allowed} onClick={() => onEdit(id)}>Card</Card>

因此,视情况而定,将为allowed={true}allowed={false}


哦,您想在editCard中使用它,所以您可以像这样使用:

 <Card onClick={() => onEdit(id, allowed)}>Card</Card>

带有条件语句的一个好用例将是这样的:(如果允许,则仅显示卡片)

 {
   allowed &&
   <Card onClick={() => onEdit(id)}>Card</Card>
 }

这样,您可以确保代码中的指令清晰。因此,您发现了各种方法。编码愉快!