Ich lese die Dokumentation für Redux und stecken geblieben mit reselect
. Der folgende Code erstellt einen Selektor und die Dokumentation sagt, wenn wir es in zwei VisibleTodoList
Komponenten verwenden möchten, dann funktioniert es nicht korrekt.Erneut korrekt memoisieren mit mehreren Instanzen der gleichen Komponente
import { createSelector } from 'reselect'
const getVisibilityFilter = (state, props) => state.todoLists[props.listId].visibilityFilter
const getTodos = (state, props) => state.todoLists[props.listId].todos
const getVisibleTodos = createSelector([getVisibilityFilter, getTodos], (visibilityFilter, todos) => {
switch (visibilityFilter) {
case 'SHOW_COMPLETED':
return todos.filter(todo => todo.completed)
case 'SHOW_ACTIVE':
return todos.filter(todo => !todo.completed)
default:
return todos
}
})
export default getVisibleTodos
Mit dem getVisibleTodos Wähler mit mehreren Instanzen des visibleTodoList Behälter nicht richtig memoize
const mapStateToProps = (state, props) => {
return {
// WARNING: THE FOLLOWING SELECTOR DOES NOT CORRECTLY MEMOIZE
todos: getVisibleTodos(state, props)
}
}
Was bedeutet das? Ich kann nicht herausfinden, warum es nicht funktionieren würde.
danke für die Antwort, es ist wirklich interessant. –