Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HT-5 kostenevich #71

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

HT-5 kostenevich #71

wants to merge 2 commits into from

Conversation

klmncr
Copy link

@klmncr klmncr commented Oct 29, 2021

У меня есть баг, при котором только первый компонент REVIEWS проходит через useEffect, где подтягивает ревьюхи с апи. Если же перейти на табу ревью другого ресторана то при отрисовке нового компонента REVIEWS он не проходит через useEffect и получается что данные не подтягиваются, но последующие функции вызываются и идёт краш из-за того что нет подтянутых данных. Краш можно пофиксить тем, что подтягивать ревью ещё на Ресторане (оно в любом случае так правильно, что бы рендерился баннер адекватно), но по идее баг останется с useEffect'ом. Если не пофикшу до занятий, объясните плс в чём моя ошибка, ибо уже часа 2.5 гуглю и не могу найти решение, мозг совсем поплавился(

@klmncr
Copy link
Author

klmncr commented Oct 29, 2021

Смог пофиксить, проблема была как раз таки в том что не подтягивал ревью на уровне ресторана + проверка на рендер "NO DATA :(" была в && а не || и оно скипало из-за этого useEffect т.к. тот просто не успевал подтянуть нужные данные.

@@ -13,11 +20,19 @@ class Menu extends Component {

state = { error: null };

componentDidMount() {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

еще нужно обработать смену ресторана в componentDidUpdate, если убрать передачу key в Menu, то без componentDidUpdate не будут грузиться новые продукты

};

export default connect(null, mapDispatchToProps)(Reviews);
const mapDispatchToProps = (dispatch, props) => ({
loadReviews: () => dispatch(loadReviews(props.restId)),
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в компоненте идет вызов loadReviews(restId), тут можно простую форму mapDispatchToProps использовать с объектом

const mapStateToProps = (state, props) => ({
loading: productLoadingSelector(state, props),
loaded: productLoadedSelector(state, props),
restId: props.restId,
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в компонент и так прийдет пропа restId

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants