我看到了这段代码:
const enhance = withHandlers({
signIn: ({ signIn, provider }) => () => signIn(provider)
});
我理解enhance
是一个功能。 signIn
也是一个函数,但它们之间的空()
的意义是什么?为什么它不能只是:
signIn: ({signIn, provider}) => signIn(provider)
答案 0 :(得分:2)
没有。 ()
是箭头功能的一部分。它是一个返回函数的函数。让我分解一下:
signIn: ({ signIn, provider }) => () => signIn(provider)
^ ^ ^
Destructuring Implicit No argument
assignment return arrow function
for arguments
属性signIn
是一个接受对象参数并返回执行signIn(provider)
的函数的方法。
您的版本:
signIn: ({signIn, provider}) => signIn(provider)
不返回执行signIn(provider)
的函数,它返回signIn(provider)
的返回值。