2017-01-15 26 views
1

我有一個類似的用例,在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

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