Честно говоря, после нескольких часов исследований я совершенно не понимаю повторного выбора, поэтому я просто спрашиваю, зачем он мне нужен и может ли он помочь.
Селекторы эффективны.Селектор не пересчитывается, пока не изменится один из его аргументов.
Немного неясно, что мы подразумеваем под argument
здесь, но я предполагаю, что это не состояние избыточности, потому что иначеНе может быть никакого смысла в повторном выборе.
Моя цель - не вычислять весь список каждый раз, когда что-то происходит, потому что он может содержать тысячи элементов.
Первый вопрос: если, например,например, значение state["2"]
меняется на 4, оно будет проходить через весь список?
//for an example, in the next list, the key is the child,
//and the value is it's parent
const state = {
1: 5,
2: 5,
3: 2,
4: 1,
5: 10,
//...
1000: 342
};
//and we have to find all children of a specific element,
//what we get from the component's own props
const getState = (
state,
props //okay, I can access it here
) => state;
const getChildren = createSelector(
[getState],
state => Object.keys(state).filter(child => {
const parent = state[child];
return parent === props.id //but I need it here
})
);
const mapStateToProps = (state, props) = ({ children: getChildren(state, props) });
И главный вопрос: как я могу получить доступ к подпоркам внутри тела функции?