在使用重新选择功能方面,我真的可以在此思维障碍上提供一些帮助。
我的问题的摘要是,如果我试图创建一个记忆选择器,而我的输入选择器之一是嵌套对象,这会导致每次重新选择重新计算吗?
让我说我的状态是
{name: bob, portfolio: {'tesla': {price: 10}, 'ibm': {price: 20}}}
我在下面有一个输入选择器,如您所见,它是一个包含更多对象的对象。
const portfolioSelector = (state) => state.portfolio
和另一个道具选择器,我只是在其中输入公司名称作为关键字。
const idSelector = (_, companyName) => companyName
然后我记住的选择器将是
const makeGetPrice = () => {
return createSelector(
[portfolioSelector, idSelector],
(portfolio, id) => { return portfolio[id].price}
}
现在,由于redux doc表示,他们使用===进行比较,所以每次组合对象都不会被解释为新对象吗?
在我读过的某个地方,它们遍历了密钥,因此它只检查第一级,但是在我的情况下,{price:5}将成为第二级,并且比较将返回false。
我正在努力了解如何使用我提供的输入选择器来进行重新选择以防止重新计算。