Redux useSelector中的equalsFn不适用于对象和数组

时间:2019-07-29 17:41:37

标签: reactjs redux react-hooks

我认为useSelector中的equalsFn不能正常工作。它适用于简单的字符串/数字,但不适用于对象和数组。在这种情况下,它总是使“ item”和“ prevItem”相等。检查示例here

var path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)?.Replace("file:\\", "");

1 个答案:

答案 0 :(得分:4)

state.count.push('1')

请勿更改状态。

redux的core concepts之一是状态是不可变的。由于状态被假定为不可变的,因此仅需超快速引用相等性检查(即===)即可确定状态是否已更改。如果您通过使状态发生变异而违反了该假设,则之前的状态和之后的状态是同一对象,因此看起来实际上没有任何更改。

相反,创建一个新数组。使用传播语法,您可以这样做:

case 'INC': 
  return {
    ...state,
    count: [...state.count, '1']
  }

另请参见此页面上的建议:Immutable Update Patterns