问题描述
从这行代码
{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版本?
当我单击该数字时,我可以将数字更改为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} /> )}