Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 代码工作,但给出:预期的赋值或函数调用_Javascript_Reactjs - Fatal编程技术网

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>

检查表达式和语句的区别。

您可以编辑您的帖子以包含错误消息吗。非常感谢。