Javascript Eslint错误:';应为赋值或函数调用,而应为表达式';
运行下面的代码时,会抛出eslint错误:Javascript Eslint错误:';应为赋值或函数调用,而应为表达式';,javascript,reactjs,expression,Javascript,Reactjs,Expression,运行下面的代码时,会抛出eslint错误: handleColorChangeComplete(color) { const newState = { item: { ...this.state.item, color, } }; const modFields = this.state.modifiedFields;
handleColorChangeComplete(color) {
const newState = {
item: {
...this.state.item,
color,
}
};
const modFields = this.state.modifiedFields;
if (!modFields.includes('color')) {
modFields.push('color');
newState.modifiedFields === modFields;
}
this.setState(newState);
}
问题似乎与
newState.modifiedFields===modFields
有关
我如何解决这个问题?我应该用三元运算符重写吗?我不确定您在这里想要实现什么
=
是一个布尔运算符,因此newState.modifiedFields===modFields
是一个返回true
或false
的表达式。如果要设置newState.modifiedFields
的值,只需使用newState.modifiedFields=modFields代码>这一行应该做什么?您正在比较两个对象,但没有对结果执行任何操作newState.modifiedFields===modFields
不做任何事情,因此您的linter将其标记为潜在错误代码>?您仍然没有解释您期望的内容newState.modifiedFields===modFields代码>要做的事。额外的代码并不能使这一点更加清楚。给出的答案是正确的。尝试执行布尔运算而不指定结果是不正确的。作业通过=
完成。谢谢Matt。这是在一个句柄函数中更新颜色。我更新了问题中的代码。