在 React 中,为什么这个 onClick 代码片段可以工作,但我尝试编写它的其他方式却不行?
In React, why does this onClick snippet of code work but not this other way ive tried to write it?
为什么这对 onClick 有效
const mapDispatchToProps = (dispatch) => ({
toggleCartHidden: () => dispatch(toggleCartHidden()),
});
<Button
onClick={() => {
history.push('/checkout');
toggleCartHidden();
}}
>Button text</Button>
但这不起作用(路由不起作用)
<Button
onClick={
(() => {
history.push('/checkout');
},
toggleCartHidden)
}
>Button text</Button>
我有另一个具有类似代码的组件,它与 onClick 一起使用此语法(onClick 中没有函数调用)
const mapDispatchToProps = (dispatch) => ({
toggleCartHidden: () => dispatch(toggleCartHidden()),
});
<div className='cart-icon' onClick={toggleCartHidden}> ICON </div>
因为您传递的是 expression
已评估。在 expression
处,您使用 ,
运算符评估每个部分,但它仅 returns 最后一个 toggleCartHidden
.
如果你在你的控制台上(1, 3, 5)
它returns5
。
为什么这对 onClick 有效
const mapDispatchToProps = (dispatch) => ({
toggleCartHidden: () => dispatch(toggleCartHidden()),
});
<Button
onClick={() => {
history.push('/checkout');
toggleCartHidden();
}}
>Button text</Button>
但这不起作用(路由不起作用)
<Button
onClick={
(() => {
history.push('/checkout');
},
toggleCartHidden)
}
>Button text</Button>
我有另一个具有类似代码的组件,它与 onClick 一起使用此语法(onClick 中没有函数调用)
const mapDispatchToProps = (dispatch) => ({
toggleCartHidden: () => dispatch(toggleCartHidden()),
});
<div className='cart-icon' onClick={toggleCartHidden}> ICON </div>
因为您传递的是 expression
已评估。在 expression
处,您使用 ,
运算符评估每个部分,但它仅 returns 最后一个 toggleCartHidden
.
如果你在你的控制台上(1, 3, 5)
它returns5
。