React中回调形式的标签属性(复习)

首先是教学视频中的代码:
οnclick={ ()=>{this.props.history.push(’/product/detail’) }
在这里插入图片描述
可以看到是没有花括号的,至于为什么要复习这个知识点,是因为我自己在写的时候,看到函数体只有一句的时候,想到的是有两种情况的,一是没有return,二是有retuyrn,在我自己写的时候,就给这里补上了return,

自己的代码:(最初)

<LinkButton onClick={
   ()=>{
   return this.props.history.push('/product/detail')}}>详情</LinkButton>

虽然和视频不同,但是也达到了,点击按钮跳转页面的目的,但是却感觉哪里不对,
去复习了一下箭头函数的花括号省略情形:

  • 1.使用了花括号,就不能省略return;
  • 2.只有在省略了花括号的情况下,才有可能省略return
  • 3.函数体只有一句的时候,可以省略花括号
  • 4.只有一句的时候,并且是return xxx的时候,可以连带return一起省略

我测试了取消return缺不取消花括号的情况

<LinkButton onClick={
   ()=>{
    this.props.history.push('/product/detail')}}>详情</LinkButton>

结果也是没有影响的,照样能跳转

然后再看这里为什么我写了return和不写都是一样的,才反应过来,
此处不应该是return this.props。。。因为,目的是让这个函数执行,而不是让他有一个返回值,而且,就算有返回值,在这种情况下,也没有地方接收,所以this.props.history.push会返回一个undefined然后再return上去一个undefined,没有地方接收这个,但是this.props.history.push也已经运行了,所以对目标没有影响,但实际上不写return才是正确的,因为只有一行代码,所以可以省略花括号, 至于为什么纠结这个return,是因为教学视频里面没用花括号,自己却用了,然后把何时能省略return记混淆了。

所以真相了,写不写return,都会把我的目标函数history.push()运行,
有return的会返回undefinedÿ

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值