سلام استاد
داخل کد زیر چرا برای زمانی که 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 ها رو باید نمایش بده