如何解决以下es-lint警告-警告为“预期返回值”?

时间:2018-10-25 09:42:30

标签: javascript reactjs eslint

我有下面的代码可以正常工作

this.state.fieldsData.advancedSearchComponentData.map((advancedCompDataElement) => {
            if (advancedCompDataElement.isRangeAttribute) {
                advancedCompDataElement.rangeAttributes.map((rangeDataElement) => {
                    if (rangeDataElement.data.value) {
                        searchElement[rangeDataElement.data.searchAttribute] = rangeDataElement.data.value;
                    }
                });
            } else {
                if (advancedCompDataElement.value)
                  searchElement[advancedCompDataElement.searchAttribute] = advancedCompDataElement.value;
            }
        });

但是我可以看到一些eslint警告

Line 138:  Expected to return a value in arrow function  array-callback-return
Line 140:  Expected to return a value in arrow function  array-callback-return

有人可以解释一下我为什么会收到这些错误以及如何解决这些错误吗?

1 个答案:

答案 0 :(得分:3)

.map的目的是获取一个数组和一个回调,并根据该回调对数组中的每个元素进行转换,以便返回具有转换后的元素的新数组,例如{{1} }到[1, 2, 3, 4][2, 4, 6, 8]之间。如果您使用.map(n => n * 2)但不返回任何内容,则意味着您没有将其用于预期的目的-您可能只想使用简单的迭代,可以通过.map完成:< / p>

forEach

正如rule description所说:

  

数组有几种过滤,映射和折叠的方法。如果我们忘记在回调中编写return语句,则可能是一个错误。如果您不想使用退货或不需要返回结果,请考虑改用.forEach。