首页 > 解决方案 > 箭头函数不应返回赋值 no-return-assign

问题描述

然而,我的代码在应用程序中正常工作,在 commit husky 运行并给出错误“箭头函数不应返回赋值 no-return-assign”之前

           <Field name='dob' label='dateOfBirth'
              placeholder=''
              onFocus={(e) => e.target.placeholder = 'MM/YYYY/DD'}
            />

标签: javascriptreact-reduxredux-form

解决方案


正如一些人在评论中提到的那样,问题在于您正在使用

(e) => e.target.placeholder = 'MM/YYYY/DD'

大致相当于

anon_func = function (e) {
    return e.target.placeholder = 'MM/YYYY/DD';
}

因为(args) => <expression>意味着评估表达式并返回结果。

与 jakemingolla 的回答相反,这合法的;它返回 'MM/YYYY'DD' 在这种情况下无关紧要,因为您不关心任何返回值。这就是它“起作用”的原因。但它通常被认为是糟糕的风格,这就是为什么你的预提交检查会标记它。

你想要的是(args) => {<function-body>},如果你没有明确地返回一些东西,它(就像任何直接声明的函数体一样)只会返回 undefined 。那是

(e) => {e.target.placeholder = 'MM/YYYY/DD';}

大致是这样的

anon_func = function (e) {
    e.target.placeholder = 'MM/YYYY/DD';
}

这就是你想要的。


推荐阅读