تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علیرضا بابایی
پیاده نشدن حالت فیتلر active
جامعه ری اکت ایجاد شده در ۱۹ شهریور ۱۴۰۰

سلام استاد

داخل کد زیر چرا برای زمانی که 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)
}

سلام

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

 

const showCompleted = status === StatusFilters.Completed

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

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

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

مجتبی سوری ۲۱ شهریور ۱۴۰۰، ۱۴:۵۰