React.useMemo第二个参数数组可以包含一个对象吗?
我问这个问题是因为我根据对象的值进行了昂贵的计算。
我不知道应该扩展对象,还是只是将对象传递到该数组中。
答案 0 :(得分:1)
可以将一个对象用作第二个参数。但这取决于对象的行为方式。如果每次更改受影响的值后,总是有该对象的新实例,则React.useMemo
将能够检测到该更改。由于React.useMemo
仅在有对象的情况下进行实例比较,因此如果实例保持不变,则将不会检测到对象中的变化 。如果实例更改的频率高于受影响的属性,则最好仅提取所需的属性并将其单独移交。这样可以确保只有在需要时才能进行计算。