У меня проблема, связанная с редуктором и действием. Укажите, что у меня есть Компонент Сообщения для отображения всех сообщений.
- Я создаю редуктор для хранения всех сообщений.
- Я выполняю действие для вызова всех сообщений из API
- Компонент будет отображать данные из хранилища посредством действия, вызываемого внутри компонента.
Это означает, что перед вызовом действия редуктор будет пустым.
Конечно, если я установлю условие, чтобы проверить, что редуктор пуст или нет, это не плохое решение.
Но это не очень хорошо, если мне нужно показать, сколько сообщений или сортировать сообщения, действие по автору ...
Если результат поиска вернется пустым, страница также уйдет.
Давайте посмотрим мой редуктор:
case ListPost:
return({
...state,
postCount:payload.postCount,
allPosts:payload.allPosts,
postByAdmin:payload.postByAdmin,
postByMod:payload.postByMod
})
И компонент
useEffect(()=>{
ListPostAction();
},[]);
if(ListPost.postCount > 0) {
.....
return (
<div>
ListPost.allPosts.map.....
</div>
)
}else {
return 'No post found'
}
Действие вернет payload
из API, подобного приведенному выше редуктору.
И при первой загрузке ничего не возвращается, и действие ListPost продолжит выполняться и вернет данные, отправленные в редуктор. Состояние компонента изменится, и он покажет данные. Нет проблем, если это так.
и проблема здесь:
- Вы можете увидеть
search box
здесь. Я делаю поиск -> если это не пост, то и редуктор тоже пустой. Компонент вернется пустым. Это означает, что полоса All posts, post by admin, search box
исчезнет. Конечно, я не хочу удалять эту панель, когда результат поиска пуст.
Можете ли вы дать мне совет. Спасибо