Саша
С запросом все ок, массив приходит в стейт, только почему-то это не инициирует перерисовку. И это касается только классового компонента
Denys
поставь консоль лог в ренлере
Denys
и посмотри сколько раз и когда рендер визивает
Саша
при загрузке страницы и каждом клике на кнопку
Denys
смотрел componentDidUpdate?
Саша
Саша
Массив сидит в стейте
Denys
ааа
Denys
стоп
Denys
а не не то)
Саша
В componentDidUpdate пропсы приходят, а стейт остается null
Саша
Вот такая ситуация после загрузки и двух кликов по кнопке
Daniil
делай ===
Саша
Исправил, но это другой компонент и проблема не решилась
Daniil
Саша
Ошибок никаких нет. Проблема в том, что компонент не перерисовывается при изменении стейта. При чем, если тот же компонент переделать с классового на функциональный, то все работает норм
Саша
Но мне нужен функциональный для методов жизненного цикла
Daniil
да есть такое по последнему - будьте бдительны!
Daniil
Daniil
почти нет разницы функциональный компонент или классовый одно и то же можно реализовать и на тех и на других
Daniil
Саша
Я понимаю. Но не понимаю почему компонент не ререндериться когда в него новые пропсы прилетают. Хотя в рендер попадаю при каждом клике на кнопку запроса на сервер
Daniil
используй хуки и вперед
Daniil
Саша
Мне просто любопытно почему так. Очевидно на это есть причина, хотелось бы её узнать чтобы не застревать на таких моментах в дальнейшем
A
здравствуйте, подскажите пожалуйста.
я на 43 ролике. 23 минуте
A
есть два компонента, у родительского есть функции, когда я через пропсы пытаюсь дочернему элементу передать функции родительского, у дочернего выводит ошибку props.addPost is not a function, в дебагере пропсы приходят, а сама функция addPost undefined.
Daniil
Саша
Саша
Саша
Саша
На первом скрине редьюсер. 2-3 компонент
Daniil
Саша
Да. Я перепутал, когда писал
Саша
Нужен классовый так как хочу запрос засунуть в componentDidMount
Саша
Вместо кнопки
Daniil
ты можешь этот код засунуть в кодсанбокс? https://codesandbox.io
Daniil
так будет проще поработать над ним
A
Daniil
практика только практика, не нужно подглядывать нужно разбираться
Volodia
А по чем ты мапаешь, что у тебя там фильтруется?
A
уже 5 часов копаюсь, могу скинуть код, можете подсказать пожалуйста
Volodia
Ты фильтруеш где план равен тому что ты написал, ты уверен что там массив остается?
Volodia
Volodia
Пропсами нужно правильно передать
Volodia
Попробуй написать map по this.props.competitions и посмотри тоже ли будет?
A
извините, что зипкой
Volodia
Ничего
A
компоненты MyPostsConatiner И MyPosts
Артем
Думаешь я этого не знаю? Просто человек сам попросил сказать ему как сделать перенаправление без использования навлинк и линк
Артем
Какой вопрос такой и ответ
Артем
Ну ладно
Артем
Кстати как думаете это нормально что у меня при обновлении страницы идет запрос на сервер за постами?
Volodia
У тебя в компонетдидмоунт да? Если да то нормально
Volodia
Ну вроде да, нормально)
Артем
Ну тогда ок
Артем
Просто я не самый быстрый сервер написал :D
Артем
Решил что о скорости надо позаботиться в сообщениях а не в профиле
Asylzhan
Что лучше использовать функциональную или классовую компоненту
Артем
A
Володя, ты не смотрел мой код?🙂
Daniil
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 | }
Volodia
Daniil
тогда мы идем к вам))
A
Артем
Тут короче я такой баг нашел в общем если я выкладываю пост с 1 аккаунта а потом захожу на другой и на нем тот же пост я посмотрел на базе и там одинаковые id почему-то как это исправить?
Артем
Это как то связано с тем что через 1 пк захожу
A
и вообще как вы относитесь к компонентам-контейнерам, всегда их используете?
Volodia
Volodia
@Akmaralmayer
Volodia
Тут юзай вместо MyPosts
Volodia
MyPostsContainer
Volodia