Javascript 箭头函数不应返回赋值Eslint
我映射了一个从API返回的值,如果该值不存在,则添加一个伪值作为防御代码。为此,我使用JS映射来获得结果。但不幸的是,我得到了eslint errorJavascript 箭头函数不应返回赋值Eslint,javascript,reactjs,eslint,eslint-config-airbnb,Javascript,Reactjs,Eslint,Eslint Config Airbnb,我映射了一个从API返回的值,如果该值不存在,则添加一个伪值作为防御代码。为此,我使用JS映射来获得结果。但不幸的是,我得到了eslint errorArrow函数不应返回赋值。这里我分享我实现的代码。请检查并建议我最好的解决方案。我不想禁用eslint错误。提前谢谢 代码: const chartData = res.data.map( (data) => data.latestMetric = data.latestMetric === null ? dummyLatestM
Arrow函数不应返回赋值
。这里我分享我实现的代码。请检查并建议我最好的解决方案。我不想禁用eslint错误。提前谢谢
代码:
const chartData = res.data.map(
(data) => data.latestMetric = data.latestMetric === null ? dummyLatestMetric : data.latestMetric
);
错误:
const chartData = res.data.map(
(data) => data.latestMetric = data.latestMetric === null ? dummyLatestMetric : data.latestMetric
);
箭头函数不应返回赋值。eslint(不返回分配)
arrow函数表达式是正则函数表达式的一种语法紧凑的替代方法,尽管它没有自己对this、arguments、super或new.target关键字的绑定。箭头函数表达式不适合用作方法,并且不能用作构造函数
map()方法创建一个新数组,其中填充了对调用数组中的每个元素调用所提供函数的结果
.map()
函数要求您为每次迭代返回一个值。如果只想通过数组循环来做副作用,可以考虑<代码>前缀或其他循环函数。
在您的情况下,我发现您希望有条件地修改res.data
中的latestMetric
,您可以这样做:
const chartData = res.data.map(data => ({
...data,
latestMetric: data.latestMetric === null ? dummyLatestMetric : data.latestMetric,
});
将数据
属性扩展到一个新对象中,然后我们根据条件有条件地设置latestMetric
的值
如果不想使用扩展语法,也可以使用传统方法:
关于防御策略,您可能有兴趣使用
|
语法,但在验证所有虚假值时要小心(包括:false
,0
,null
,未定义
,等等)
最后但并非最不重要的一点是,您最好先了解ESLint规则,并阅读该编码实践背后的原因,看看是否要使用该规则,或修改该规则,甚至在项目中禁用该规则
Ref:由于您没有从arrow函数显式返回值,因此eslint希望您使用带有主体的函数 这应该可以解决这个问题:
const chartData = res.data.map(
(data) => {
data.latestMetric = data.latestMetric === null ? dummyLatestMetric : data.latestMetric;
});
您需要返回以下值:
const chartData=res.data.map((数据)=>{
data.latestMetric=data.latestMetric==null?dummyLatestMetric:data.latestMetric;
返回数据;
});代码>问题:
此规则表示不允许您返回类似以下操作的分配操作:
return a = 3 // or similar.
但这正是你正在做的,所以
诀窍是返回对象/属性,而不是赋值操作=
不清楚在.map
中返回您感兴趣的内容是什么,您想返回整个数据还是只返回数据。latestMetric
,因此我的答案也包括两种情况:
如果需要修改并返回数据,请尝试以下操作:
const chartData = res.data.map(
data => (data.latestMetric = data.latestMetric === null ? dummyLatestMetric : data.latestMetric) && data
// updated data.latestMetric and then returning a whole object
);
const chartData = res.data.map(
data => data.latestMetric === null ? dummyLatestMetric : data.latestMetric
);
如果您只需要数据.latestMetric
,请尝试以下操作:
const chartData = res.data.map(
data => (data.latestMetric = data.latestMetric === null ? dummyLatestMetric : data.latestMetric) && data
// updated data.latestMetric and then returning a whole object
);
const chartData = res.data.map(
data => data.latestMetric === null ? dummyLatestMetric : data.latestMetric
);
data.latestMetric=data.latestMetric
?对不起,我没有得到itconst chartData=res.data.map((data)=>data.latestMetric=(data.latestMetric==null?dummyLatestMetric:data.latestMetric));顺便问一下,您想在.map
中返回什么?您想收集数据
还是数据。最新度量值
?@qiAlex现在呢。我添加了{
和}