一行箭头函数,返回多个
One line Arrow function, return multiple
我正在使用ReactJS,我有麻烦得到一个箭头函数返回多个函数。
我有一个onLoad事件的一行箭头函数:
<iframe onLoad={() => (this.handleFrame && this.setState({loadingComplete: true}))}></iframe>
上面的代码不起作用。我怎样才能同时返回this.handleFrame
&一行代码上的this.setState({loadingComplete: true})
?
你可以试试这个
<iframe onLoad={() => ({val1: this.handleFrame(), val2: this.setState({loadingComplete: true})})}></iframe>
它将返回一个有两个值的对象
您忘记调用this.handleFrame:
<iframe onLoad={() => (this.handleFrame() && this.setState({loadingComplete: true}))}></iframe>
请注意,这将调用两个函数,但它将返回一个布尔值(如果两个函数都返回真值,则为真值,否则不为真值)
还要注意,如果你的第一个函数不返回真值,下一个函数将不会被调用!
如果你想调用所有函数而不管它们是否返回真值,并且不关心返回结果,那么就这样做:
<iframe onLoad={() => { this.handleFrame(); this.setState({loadingComplete: true}) }}></iframe>
你的问题不对。你不能一次return
两个项目。
您的代码正在检查this.handleFrame
,如果可用,this.setState({loadingComplete: true})
将被执行并返回值。如果this.handleFrame
不可用,它将返回undefined
。
如果您希望执行多个函数,您可以执行以下操作:
<iframe onLoad={() => ((this.handleFrame() || true) && this.setState({loadingComplete: true}))}></iframe>
如果您为this.handleFrame()
返回true
,则不需要||
检查。
如果您希望返回多个函数,您可以执行以下操作:
<iframe onLoad={() => {handleFrame: this.handleFrame, state: this.setState({loadingComplete: true})}}></iframe>
相关文章:
- ES6构造函数返回基类的实例
- 从函数返回角度承诺
- 如何从jquery函数返回变量
- 根据是否解析了 Promise 从函数返回值
- Javascript函数返回未定义
- 如果函数返回True,则显示Javascript按钮
- Google Sheet自定义函数返回0
- 从Ajax函数返回值
- 使用for循环从Javascript中的函数返回多个值
- 谷歌地图:函数返回未定义的值在console.log中运行良好
- 从函数中的函数返回数组时出错
- 如何从嵌套的API函数返回值
- 从Mongoose结果匿名函数返回父函数
- 函数返回错误'令牌{'
- Jquery函数返回订单问题
- Mocha/Chai测试链接到函数返回断言错误
- 从异步函数返回值
- 函数返回后更新变量
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 将外部函数返回的id传递给内部函数