Саша
С запросом все ок, массив приходит в стейт, только почему-то это не инициирует перерисовку. И это касается только классового компонента
Denys
поставь консоль лог в ренлере
Denys
и посмотри сколько раз и когда рендер визивает
Саша
при загрузке страницы и каждом клике на кнопку
Denys
смотрел componentDidUpdate?
Саша
Саша
Массив сидит в стейте
Denys
ааа
Denys
стоп
Denys
а не не то)
Саша
В componentDidUpdate пропсы приходят, а стейт остается null
Daniil
А в чем отличие сокетов и ajax?
там лонг полинг - связь устанавливается 1 раз пока не закроется клиент (или не 'положат трубку')
Саша
Вот такая ситуация после загрузки и двух кликов по кнопке
Daniil
делай ===
Саша
Исправил, но это другой компонент и проблема не решилась
Саша
Ошибок никаких нет. Проблема в том, что компонент не перерисовывается при изменении стейта. При чем, если тот же компонент переделать с классового на функциональный, то все работает норм
Саша
Но мне нужен функциональный для методов жизненного цикла
Daniil
да есть такое по последнему - будьте бдительны!
Daniil
почти нет разницы функциональный компонент или классовый одно и то же можно реализовать и на тех и на других
Саша
Я понимаю. Но не понимаю почему компонент не ререндериться когда в него новые пропсы прилетают. Хотя в рендер попадаю при каждом клике на кнопку запроса на сервер
Daniil
используй хуки и вперед
Саша
Мне просто любопытно почему так. Очевидно на это есть причина, хотелось бы её узнать чтобы не застревать на таких моментах в дальнейшем
A
здравствуйте, подскажите пожалуйста. я на 43 ролике. 23 минуте
A
есть два компонента, у родительского есть функции, когда я через пропсы пытаюсь дочернему элементу передать функции родительского, у дочернего выводит ошибку props.addPost is not a function, в дебагере пропсы приходят, а сама функция addPost undefined.
Саша
Саша
Саша
Саша
На первом скрине редьюсер. 2-3 компонент
Саша
Да. Я перепутал, когда писал
Саша
Нужен классовый так как хочу запрос засунуть в componentDidMount
Саша
Вместо кнопки
Daniil
ты можешь этот код засунуть в кодсанбокс? https://codesandbox.io
Daniil
так будет проще поработать над ним
Daniil
практика только практика, не нужно подглядывать нужно разбираться
Volodia
А по чем ты мапаешь, что у тебя там фильтруется?
A
уже 5 часов копаюсь, могу скинуть код, можете подсказать пожалуйста
Volodia
Ты фильтруеш где план равен тому что ты написал, ты уверен что там массив остается?
Volodia
Пропсами нужно правильно передать
Volodia
Попробуй написать map по this.props.competitions и посмотри тоже ли будет?
A
извините, что зипкой
Volodia
Ничего
Саша
Ты фильтруеш где план равен тому что ты написал, ты уверен что там массив остается?
Да. Проблема была в этом. Почему тогда оно работает в функциональном компоненте и отдает тот массив, который я хотел ?
A
извините, что зипкой
компоненты MyPostsConatiner И MyPosts
Артем
Думаешь я этого не знаю? Просто человек сам попросил сказать ему как сделать перенаправление без использования навлинк и линк
Артем
Какой вопрос такой и ответ
Артем
Ну ладно
Артем
Кстати как думаете это нормально что у меня при обновлении страницы идет запрос на сервер за постами?
Volodia
У тебя в компонетдидмоунт да? Если да то нормально
Артем
У тебя в компонетдидмоунт да? Если да то нормально
Ну я не в плане архитектуры спрашиваю а в общем что каждое обновление страницы идет запрос на сервер
Volodia
Ну вроде да, нормально)
Артем
Ну тогда ок
Артем
Просто я не самый быстрый сервер написал :D
Артем
Решил что о скорости надо позаботиться в сообщениях а не в профиле
Asylzhan
Что лучше использовать функциональную или классовую компоненту
Саша
ты можешь этот код засунуть в кодсанбокс? https://codesandbox.io
В общем, проблема была в том, что я фильтровал массив, до того как он вернулся от сервера. Запихнул фильтрацию в render перед return и все пофиксилось
A
Володя, ты не смотрел мой код?🙂
Volodia
компоненты MyPostsConatiner И MyPosts
а в чем проблема, у меня все работает?
A
а в чем проблема, у меня все работает?
он отрисовывается норм, но когда меняю в Profile textfiel Или кликаю addost, то выводит ошибку, что те переданные через пропс функции ими не являются
A
× TypeError: props.addPost is not a function onAddPost 13 | let newPostElem = React.createRef(); 14 | 15 | let onAddPost = () => { > 16 | props.addPost(); | ^ 17 | }
Daniil
тогда мы идем к вам))
Артем
Тут короче я такой баг нашел в общем если я выкладываю пост с 1 аккаунта а потом захожу на другой и на нем тот же пост я посмотрел на базе и там одинаковые id почему-то как это исправить?
Артем
Это как то связано с тем что через 1 пк захожу
A
и вообще как вы относитесь к компонентам-контейнерам, всегда их используете?
Volodia
Volodia
@Akmaralmayer
Volodia
Тут юзай вместо MyPosts
Volodia
MyPostsContainer
Volodia