React中带有Typescript映射函数的“解析错误:预期参数表达式.eslint”

问题描述

从这行代码

{inputFields.map(if => <Input inputField={if} /> )}

我在单词表上遇到这个错误

Parsing error: Argument expression expected.eslint

inputFields在表单内部,在div内部

<div>
    <form>
        {inputFields.map...}
    </form>
</div

输入字段是一个数组

inputFields: InputField[]

This answer建议这可能与打字稿版本有关。

在我的package.json中,我使用"typescript": "^3.8.3",但是在右下角,我认为这是在使用4.0.2版本?

enter image description here

当我单击该数字时,我可以将数字更改为3.9.7,但这不会更改错误


我看到的其他答案与使用map函数的用例无关

解决方法

if是Javascript中的关键字。尝试重命名变量:

{inputFields.map(field => <Input inputField={field} /> )}

声明与表达式

表达式是可解析为值的代码

const add = (a,b) => a + b
add(10,20) // => 30 
'Hello' // => 'Hello'

语句是使事情发生的代码

if (x < 10) // doesn't resolve
break // doesn't resolve
switch // doesn't resolve

因此,警告:““解析错误:期望参数表达式。eslint”告诉您期望使用表达式(可以解析为值的东西),但是您已经传递了一条语句(无法解析为值)

您不能仅将表达式分配给变量。

,

您不能使用带有诸如if或var之类的语言作为关键字的变量作为js中的变量,因此您需要根据需要重命名该变量的名称

{inputFields.map((data)=> <Input inputField={data} /> )}