может действительно помочь с этим умственным блоком, который я имею при использовании Реселекта.
Сводка моего вопроса будет такой: если я пытаюсь создать запомненный селектор, а один из моих входных селекторов является вложенным объектом, будет ли эта причина повторно выбирать каждый раз повторно?
Допустим, мое состояние
{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 do c они сравнивают, используя ===, не будет ли объект портфеля интерпретироваться как новый объект каждый раз?
Где-то я читал, что они перебирают ключи, поэтому он просто проверяет первый уровень, но тогда в моем случае {цена: 5} будет вторым уровнем, и сравнение вернет false.
Я изо всех сил пытаюсь понять, как повторный выбор предотвращает повторное вычисление, используя входные селекторы, которые я предоставил.