Javascript 在React中,为什么这个onClick代码片段可以工作,但我试着以另一种方式编写它?

Javascript 在React中,为什么这个onClick代码片段可以工作,但我试着以另一种方式编写它?,javascript,reactjs,onclick,Javascript,Reactjs,Onclick,为什么这对onClick有效 const mapDispatchToProps = (dispatch) => ({ toggleCartHidden: () => dispatch(toggleCartHidden()), }); <Button onClick={() => { history.push('/checkout'); toggleCartHidden(); }} >Button text</Button>

为什么这对onClick有效

const mapDispatchToProps = (dispatch) => ({
  toggleCartHidden: () => dispatch(toggleCartHidden()),
});

<Button
  onClick={() => {
    history.push('/checkout');
    toggleCartHidden();
  }}
>Button text</Button>
const-mapDispatchToProps=(调度)=>({
toggleCartHidden:()=>调度(toggleCartHidden()),
});
{
history.push('/checkout');
toggleCartHidden();
}}
>按钮文本
但这不起作用(路由不起作用)

{
history.push('/checkout');
},
切换(隐藏)
}
>按钮文本
我有另一个组件,它的代码与onClick的语法类似(onClick中没有函数调用)

const-mapDispatchToProps=(调度)=>({
toggleCartHidden:()=>调度(toggleCartHidden()),
});
偶像

因为您正在传递一个要计算的
表达式。在
expression
中,您使用
运算符计算每个部分,但它只返回最后一个部分,即
toggleCartHidden

如果在控制台上执行
(1、3、5)
,它将返回
5

<Button
  onClick={
    (() => {
      history.push('/checkout');
    },
    toggleCartHidden)
  }
>Button text</Button>
const mapDispatchToProps = (dispatch) => ({
  toggleCartHidden: () => dispatch(toggleCartHidden()),
});

<div className='cart-icon' onClick={toggleCartHidden}> ICON </div>