请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,getTodos返回的不是todos中的data数组吗,为什么reselect中不写成(data,filter) =>...呢

export const getFilter = state => state.filter;

const getTodos = state => state.todos.data;
 
export const getVisibleTodos = createSelector(
  [getTodos, getFiler],
  (todos, filter) =>{
    switch (filter) {
        case "all":
            return todos;
        case "active":
            return todos.filter((todo) => !todo.completed);
        case "completed":
            return todos.filter((todo) => todo.completed);
        default:
            return new Error("unknown filter: " + filter);
    }}
)

老师,请问 getTodos 这个selector返回的是todos中的data, 在createSelector中传入的参数为什么不是(data,  filter) => {} 而是(todos, filter) => {}呢? 这样传入的这个object 不是还含有isFetching 和error这两个属性吗? 谢谢老师。

正在回答 回答被采纳积分+3

2回答

艾特老干部 2020-08-10 14:22:14

你好。createSelector传入的第二个参数是一个函数,函数签名形如:(param1, param2)=> {}。

(todos, filter) => {} 中,todos, filter都是参数名,是形参,不是实参。参数名你可以任意命名,叫(data,  filter) => {}也可以。 


你的问题是把形参和实参搞混了。


0 回复 有任何疑惑可以回复我~
  • 提问者 Freya_Luo #1
    谢谢老师!
    回复 有任何疑惑可以回复我~ 2020-08-13 03:27:48
艾特老干部 2020-08-09 11:30:07

你好, 请补充下你的问题,添加问题涉及到的具体的代码。没有看懂你当前的问题。

0 回复 有任何疑惑可以回复我~
  • 提问者 Freya_Luo #1
    老师, 问题已补充!
    回复 有任何疑惑可以回复我~ 2020-08-10 02:02:01
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信