Heavy
Чтобы у тебя выполнялась перерисовка, тебе нужно новые данные пихать в state. Пихать в state ты можешь только через специальные хук useState, или через action'ы
Heavy
соответственно...
iKey
понял. благодарю. буду пробовать)
Heavy
у меня через экшн пихается
Heavy
но если тебе в экшн нужно передать параметр, то вот так:
Heavy
Heavy
ну, если я не ошибаюсь ни в чем
Heavy
в качестве параметра будешь пихать туда свои данные из json
Heavy
потом создаешь контейнерную компоненту:
Heavy
Heavy
и там пропихиваешь параметры
Heavy
соответственно, нужно создать еще ActionCreator
Heavy
ну и в редюсере прописываешь как чего делать
Heavy
с
Heavy
это и есть сам экшн криатор
Heavy
ой, там я уже параметр убрал
Heavy
Heavy
потом редюсер объединяешь с другими и в стор. После запятой что там стоит - забей, тебе пока это не надо. Там девтулза и thunk для асинхрона
Heavy
в принципе, вот вся логика
Alexander
Лучше предложить человеку просмотреть ролики обучающие до последнего выложенного
Alexander
или скачать проект обучающий с гита, чем засорять тут чат
Heavy
я думаю, пусть и так и так посмотрит
Heavy
почему бы не помочь человеку понять, а может и кому-то еще разобраться
Heavy
или скачать проект обучающий с гита, чем засорять тут чат
а Димыч на эту тему сказал, что банить будет =))) Ну типа если будут говорить, что "блин, че ты тут пишешь.. тупой чтоле, иди в гугл"
iKey
спасибо парни за помощь! Буду разбираться по тиху.
Alexander
я говорю не про тупость, а про то что человек может поратить немного совего времени и просмотреть видео где всё разжовано, чем писать сюда
Alexander
если по разжованному не понятно что-то или не получается уже вопросы в сообщество
Alexander
или я не прав ?
Heavy
так он вроде посмотрел
iKey
все правильно. просто наперед лезу) нет, я ток до 28 дошел.
Heavy
да какая разница. иногда с конца тоже прикольно начинать.
Heavy
я так часто делаю
Alexander
иногда прикольно просить за себя других работу делать, ага ?
Heavy
да тут не работа, а помощь человеку разобраться
Heavy
заодно сам разбираюсь
iKey
при чем работа тут) мне понять главное )
Alexander
Учеба - это тоже работа
Heavy
лол =)
Heavy
а жизнь - это тоже учеба. а страдание - это тоже жизнь. а космос пронизан страданием, значит жизнью. значит все есть страдание. Страдание неизбежно. Зачем тогда жить? Зачем тогда работать? Зачем учиться? Зачем учить react?
Alexander
логическая дыра в цепочке
Alexander
космос - это по большей части пустота
Heavy
заметил все-таки
Heavy
по этому что то фигня, что это
Heavy
по эскобару
Heavy
я вот пытаюсь понять логику стрелочных функций. А может и не с этим связано. Есть у меня такой асинхронный экшн:
Heavy
Если я делаю вот так
Heavy
вебшторм видит внутри переменную interactionLine. Но по факту, в setTimeout отправляется пустой объект interactionLine
Alexander
возможно, что связано с контектом вызова функции
Alexander
ведь возвращенная фукнция будет вызыватьяс уже Thunk middleware
Alexander
хотя это не точно
Heavy
сейчас сделал такое
Heavy
Heavy
может и заработает
Alexander
лучше объяснить что должно происходить
Heavy
ща проверю.. а то вчера на ночь глядя не додумался
Alexander
просто тут функция диспатчит синхронный экшн и всё
Alexander
где в свойстве таймер объявлена функция
Heavy
все работает,куль
Heavy
короче
Heavy
смысл такой: нажимаю на мышку = запуск таймера. Если таймер срабатывает, то он диспатчит еще событие
Heavy
при отпускании мышки таймер сбрасывается. Соответственно - это реализация долго нажатия, и эффекта после него
Heavy
асинхрон тут в том, что state меняется "когда-то потом" после действия
Heavy
то есть после действия, вызывается потом какое-то действие
Temych
у тебя же в редаксе уровни состояния хранятся? может есть смысл вывести их в стейт контейнера? лишний раз глобальный стейт/стор/редакс использовать не есть гуд.
Heavy
эмм.. state вообще общий как бы
Heavy
то есть стор
Heavy
а стейт для каждой компоненты прокинут свой
Temych
еще есть стейт компоненты, который тоже можно использовать. сами авторы из ЛицоКниги советуют
Heavy
Heavy
useState
Heavy
но чето... чето как-то... Я думаю, что можно запутаться потом чего откуда идет
Heavy
так я знаю как достучаться до нужной переменной
Heavy
а если использовать стейт компоненты... ну вот будешь стучаться, а там тишина. Или перезапишешь чего-нибудь не туда
Heavy
а вообще на данном проекте хочу денег сделать. Если кто хочет помочь, и в дальнейшем заработать на этом проекте, плюс поучиться совместно - велкам.
Temych
все, что касается "чистых данных", необходимо хранить в сторе, т.е. редаксе, т.е. глобальном стейте всего приложения. Все, что касается состояния презентационной компоненты(раскрыт ли список, дрожжит ли кнопка, отпущена ли мышка) - в локальном стейте компоненты или контейнера, который отвечает за эти компоненты.
Heavy
ну это, конечно да. В этом логика есть. Но я исхожу из того, что у функциональных компонент не было хуков раньше. Они быбли stateless. Соответственно, фигачу в общую кучу всё. Но, да, ты прав кажется. Нужно будет зарефакторить и перейти на хуки совсем. Так проще отлаживать. Но! Так засоряется код. Тогда придется каждый раз прокидывать руками из контейнера в презентационную компоненту пропсы. Ну или в презентационной компоненте фигачить useState с сеттерами всякими. Просто я в реакт пришел из мира электроники, делал GUI для железа на EmWin. И когда я держал локально состояние для каждого меню (компоненты) - я в дальнейшем офигевал, когда мне нужно было получить это состояние в другом меню (компоненте). Я набил себе тогда столько шишек, что фигачил потом все состояния в одной глобальной структуре (язык Си), передаваемой по указателю. Как-то я не хочу закладывать сейчас мину себе, на которой я как-то уже подорвался. Лучше пусть будет глобальный стейт, и из него я всегда могу получить все что захочу в любом месте.
Heavy
начал с "да, ты прав", закончил "не, не прав". Сам того не заметил =)
Heavy
Вот смотри, к примеру, у меня есть системное время на экране. Пока я его более нигде не хочу использовать. По твоей философии, я должен его хранить в локальном state. Но в ходе разработки, я понимаю потом, что мне нужно тянуть это время еще куда-то вглубь. В самые закрома. И... тут я переписываю код, выношу время в глобальный стейт, кидаю его в пропсы. А там уже куча кода написано... Чето сыкатно. Может лучше идти с другого конца? Сначало все глобально, а потом, когда дописал приложение - рефактор, переноси в локальное все , что можно.