Javascript 代码工作,但给出:预期的赋值或函数调用
为什么这会导致未使用的表达式错误Javascript 代码工作,但给出:预期的赋值或函数调用,javascript,reactjs,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) }} /> {(e.key=='Enter'?this.addTodo(e.target.value):
<input style={{margin:'25px 50px 0',textAlign:'center'}}
type='text' placeholder='add ToDo'
onKeyPress={e =>{(e.key ==='Enter' ? this.addTodo(e.target.value):null) }} />
{(e.key=='Enter'?this.addTodo(e.target.value):null)}/>
您正在用{}包装函数,但不返回任何值。删除{},它应该可以工作,因为arrow函数有一个隐式返回值,否则,如果您想将其包装在{}中,您需要使用“return”返回答案
试试这个:
onKeyPress={e =>(e.key ==='Enter' ? this.addTodo(e.target.value):null) } />
这里有更多信息,请阅读结尾部分与“函数体”主题相关的部分:iceveda06的答案说明了如何解决此问题,让我稍微解释一下eslint规则本身: 赋值和函数调用有副作用(不是绝对正确的,例如,空函数没有副作用,但在eslint的情况下,检查被调用函数到底做了什么并不过分),这是我们在编写代码时最终要做的事,表达式本身就是javascript中的有效语句,例如
foo?1 : 2;代码>,但大多数(除了赋值和函数调用)没有任何副作用,因此对整个程序没有贡献,因此EsLink认为它们是坏代码。p>
检查表达式和语句的区别。您可以编辑您的帖子以包含错误消息吗。非常感谢。