react函数组件父子组件传值(react组件中方法调用)
我们在初学react时(有vue等其他基础) ,我们在方法调用的时候通常是 方法名()
例如:
这样调用的话你会发现点击并不能使之触发事件 ,但是触发了重新渲染(修改state中的值) ,在控制台却发现输出了两次:测试点击
若我们写成这样<button onClick={this.handleClick}>点击</button> 发现并没有什么问题 。
但是在javaScript中若我们声明一个函数 ,调用的时候都是函数名()
例如:
这是我个人猜测:
在react中 ,jsx语法通过babel解析成浏览器可以识别的语法 ,它在解析时可能默认的给每一个方法加上()—自调用
例如:onClick={this.handleClick()} ->onClick={(this.handleClick())()} ---这样比如会报错this.handleClick(...) is not a function(有可能babel解析时又加了() )
这样比如:<button onClick={ (() => { console.log(模拟问题:,data)})()}>模拟问题</button>
我们可以拿jax语法中调用函数与javaScript比较
我们可以通过测试得到在babel编辑后的jsx语法中this.handleClick() ==lee()() 的调用
此上都是我个人的猜测
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!