我有类似accessing react props in selectors文档中的用例,但在我的情况下,假设visibilityFilter
来自道具。有没有办法如何实现如下所示?
export const getVisibleTodos = createSelector(
getTodos,
(todos, props) => {
// props is undefined
switch (props.visibilityFilter) {
case 'SHOW_ALL':
return todos
case 'SHOW_COMPLETED':
return todos.filter(t => t.completed)
case 'SHOW_ACTIVE':
return todos.filter(t => !t.completed)
}
}
)
我仍然需要对它进行适当的记忆,但我想这是第二步。
答案 0 :(得分:0)
Props (or ownProps
) is the second argument passed to any mapStateToProps
function.
使用它,您可以将所需的属性提取为resultFunc
的输入之一。
export const getVisibleTodos = createSelector(
getTodos,
(state, props) => props.visibilityFilter,
(todos, visibilityFilter) => {
switch (visibilityFilter) {
case 'SHOW_ALL':
return todos
case 'SHOW_COMPLETED':
return todos.filter(t => t.completed)
case 'SHOW_ACTIVE':
return todos.filter(t => !t.completed)
}
}
)