从选择器的resultFunc访问道具

时间:2017-01-15 20:26:42

标签: javascript reactjs redux react-redux

我有类似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)
    }
  }
)

我仍然需要对它进行适当的记忆,但我想这是第二步。

1 个答案:

答案 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)
    }
  }
)