代码有效,但给出:预期的赋值或函数调用

时间:2018-04-08 00:41:53

标签: javascript reactjs

为什么会导致未使用的表达式错误?

<input style={{margin:'25px 50px 0',textAlign:'center'}}
       type='text' placeholder='add ToDo'
onKeyPress={e =>{(e.key ==='Enter' ? this.addTodo(e.target.value):null) }} />

2 个答案:

答案 0 :(得分:2)

iceveda06的答案显示了如何解决这个问题,让我稍微解释一下这种自我规则:

作业和函数调用具有副作用(不完全正确,例如,空函数不会产生副作用,但在eslint的情况下,它不会#&# 39; t那么远去检查被调用的函数到底做了什么),这是我们在编写代码时最终做的事情,另一方面,表达式本身就是javascript中的有效语句,例如foo ? 1 : 2;,但大多数(除了作业和函数调用)都没有任何副作用,因此对整个程序没有任何贡献,所以eslint认为它们是错误的代码。

检查this question如何区分表达和陈述。

答案 1 :(得分:1)

您使用{}包装函数但不返回任何值。删除{}并且它应该有效,因为箭头函数具有隐式返回值,否则如果要将其包装在{}中,则需要使用“return”返回答案。

试试这个:

onKeyPress={e =>(e.key ==='Enter' ? this.addTodo(e.target.value):null) } />

以下是更多信息,请阅读与“功能正文”主题相关的部分:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions