首页 > 解决方案 > Reactjs 在箭头函数中调用箭头函数

问题描述

我的 React 项目中的箭头函数有问题。

该类如下所示:

f1() { 
// sth...
}

f2 = (a) => () => { /* sth */ }
f3 = (b) => () => {
   this.f1();
   this.f2();
}

为什么没有调用函数 f2?F1 没问题,但 f2 似乎有上下文问题?如何解决?我需要在另一个可以工作的地方(onClick 事件)调用相同的函数(f2)。我想自动绑定的“this”有问题,但我不知道如何解决。请帮忙。

标签: javascriptreactjsarrow-functions

解决方案


您的函数f2确实被调用,但返回另一个函数。

f2 = (a) => () => { /* sth */ }

这相当于:

f2 = (a) => {
    return () => { /* sth */ }
}

所以要打电话/* sth */,你必须使用这个:

f2()()

因为f2()返回您的第二个函数(内部函数)。


推荐阅读