پیاده نشدن حالت فیتلر active

پرسیده شده
فعالیت 928 روز پیش
دیده شده 297 بار
0

سلام استاد

داخل کد زیر چرا برای زمانی که status.filter برابر با active هست حالتی تعیین نکردید؟ چطور زمانی که فیلتر روی status برابر active  هست هندل میشه؟

 

export const selectTodos = state => state.todos.entities
export const selectTodosIds = state => Object.keys(state.todos.entities)


const selectFilteredTodos = state => {
    const todos = Object.values(selectTodos(state))
    const { status, colors } = state.filters

    const showAll = status === StatusFilters.All

    if (showAll && colors.length === 0) {
        return todos
    }

    const showCompleted = status === StatusFilters.Completed
    return todos.filter(todo => {
        const statusFilter = showAll || todo.completed === showCompleted
        const colorsFilter = colors.length === 0 || colors.includes(todo.color)

        return statusFilter && colorsFilter
    })
}

export const selectFilterdTodoIds = state => {
    const filteredTodos = selectFilteredTodos(state)

    return filteredTodos.map(todo => todo.id)
}
فایل پیوست

علیرضا بابایی
علیرضا بابایی

19 شهریور 00

0
حذف شده

سلام

اگر توجه کرده باشی completed دارای یک مقدار boolean هست یعنی میتونه true یا false باشه

 

const showCompleted = status === StatusFilters.Completed

در این بخش از کد چک میکنیم آیا باید completed ها رو نمایش بدیم یا نه! اگر showCompleted مقدار false بگیره یعنی باید اون مواردی که active هستند رو نمایش بدیم

const statusFilter = showAll || todo.completed === showCompleted

بخش دوم این خط از کد جواب سوال هست. showCompleted اگر مقدار false باشه یعنی همون active ها رو باید نمایش بده

فایل پیوست

مجتبی سوری

توسط

مجتبی سوری

21 شهریور 00