如果代码转到if时钟而不是else块,则内部错误条件之后的事件

时间:2019-04-24 11:42:21

标签: javascript reactjs ecmascript-6

我有if条件,其中有3个检查全部返回false,if代码仍在if块内,而应改为else,因为所有检查均失败。

如果我测试类似if(false || false || false)的东西,则可以正常工作,但是我的代码无法正常工作。

state = { year : 2019, sortby : '', genres : [] }
nextState = { year : 2019, sortby : '', genres : [] };

console.log(state.year !== nextState.year);
console.log(state.sortby !== nextState.sortby);
console.log(!_.isEqual(state.genres.sort(), nextState.genres.sort()))

if(state.year !== nextState.year ||
   state.sortby !== nextState.sortBy ||
   !_.isEqual(state.genres.sort(), nextState.genres.sort())
){
  console.log("Inside if");
}else{
  console.log("Inside else");  
}

2 个答案:

答案 0 :(得分:1)

因为您写的是state.sortby !== nextState.sortBy而不是state.sortby !== nextState.sortby

然后它应该工作。

答案 1 :(得分:0)

印刷错误

state = { year : 2019, sortby : '', genres : [] }
nextState = { year : 2019, sortby : '', genres : [] };

console.log(state.year !== nextState.year);
console.log(state.sortby !== nextState.sortby);
console.log(!_.isEqual(state.genres.sort(), nextState.genres.sort()))

if(state.year !== nextState.year ||
   state.sortby !== nextState.sortby ||
   !_.isEqual(state.genres.sort(), nextState.genres.sort())
){
  console.log("Inside if");
}else{
  console.log("Inside else");  
}