Daniil
то получается мне нужно через mapStatetoProps в Корзину тоже пробросить стейт с товаром, полученный изначально в компоненте со Списком? или это бред? — вообще не понял
Vlad
сейчас попытаюсь объяснить
Daniil
у тебя есть экшены через них и работай чтобы отобразить корзину бери стейт корзины зачем тебе в корзине стейт магазина
Vlad
у тебя есть экшены через них и работай чтобы отобразить корзину бери стейт корзины зачем тебе в корзине стейт магазина
я не совсем понимаю, как сделать, чтобы при клике на товар из списка, он помещал в корзину этот товар (с его названием, ценой, например) , поэтому и пытался понять как это сделать
Vlad
т.е. типа в MyCart = { } помещался такой же объект, который пришел через api
Daniil
кликнул на товар вызвал экшен
Daniil
апи у тебя для магазина должно быть а не для корзины
Vlad
у тебя ж есть экшены
это я понимаю. но как раз таки и пытался понять, нужно ли тогда пробрасывать через mapStatetoProps в компоненту Корзины список товаров который так же был получаен в компоненте Списка
Daniil
нет
Vlad
через какой апи нафига тебе там апи?
я не корректно выразился
Daniil
тебе в корзине нужно отображать то что у тебя выплюнет редакс корзины
Daniil
а в магазине то что получишь с сервера
Daniil
а зарезервированное (на сервере) менять в экшенах корзины кода + когда - это если реалтайм нужен, я бы делал, а то бывает зарезервируешь приехал а уже ушло
Vlad
апи у тебя для магазина должно быть а не для корзины
вообще я сделал так: (но видимо это криво) у меня две компоненты : 1) Список товаров. В ее контейнере я прописал как раз таки запрос на эндпойнт для получения списка товаров, и соотве-но через редакс и проброс пропсов я отрисовываю эти данные, которые получил 2) вторая, это Корзина заказа, в которую как раз таки и должен помещать товар при клике в компоненте со Списком и я застрял на там моменте, что,ы сделать так что при клик на добавить в корзину помещался так же объект, который пришел с api например, вот я получил с api это: [ { "id": 1, "name": Apple, "quantity": 20, "price": 100 }, { "id": 2, "name": Banana, "quantity": 30, "price": 90 } ] и это лежит в стейте у Списка товаров при нажатии на добавить, например на Apple, я хотел чтобы в стейт Корзины, в myCart = {} поместился объект на который кликнули, т.е. { "id": 1, "name": Apple, "quantity": 20, "price": 100 }, это верный ход мыслей?
Daniil
ты можешь объект если тебе нужно пропихивать в экшэны - нет проблем
Daniil
только тебе нужно подумать как хранить количество
Vlad
а как запихать объект из Списка в стейт Корзины? это к слову почему я начал писать про mapStateToPros и проброс items еще и в Корзину, но по моим ощущением это выглядит бредово
Daniil
"quantity": 20, - как его менять в общем
Daniil
в таком случае лучше массив и искать через find
Daniil
перезаписывая только количество если уже есть
Daniil
ну это уже мелочи сам разберешься думаю
Vlad
хорошо, вопрос.. пойду от малого. если я например при клике на Apple хочу чтобы в корзину поместилось название Apple нужно ли мне для этого в Корзину пробрасывать эти items-ы или откуда же еще она возьмет эту инфу?
Daniil
стейт в любом случае если редакс общий и можно было хранить только id но если хочешь так то храни так
Vlad
это получается нужно один общий редьюсер сделать? потому что у меня разбито по отдельности есть редьюсер для Корзины, есть редьюсер для Списка, я каждого свой стейт
Daniil
ты используешь хуки?
Vlad
нет, я по старинке через классы
Daniil
тем более
Daniil
редакс это один общий стейт на все приложение
Daniil
с хуками тоже можно так сделать при желании
Vlad
я хуков пока еще не касался, хочу сначала сделать реализации на том как раньше было, потому что это нужно...
Daniil
кинь сюда какой-нить mapPropsToState
Vlad
кинь сюда какой-нить mapPropsToState
это в оберточной компоненте списка товаров
Артем
Ну что давайте проверять запустится ли сегодня мой сервер😄
Daniil
ну вот у тебя написано state.products с таким же успехом ты тут можешь рядом прописать state.корзины
Daniil
да
Daniil
в ретурне можешь не дублировать через двоеточие - это лишнее в es6
Vlad
тем самым дав возможность менять в редьюсере списка стейт у Корзины?
Daniil
тем более если знаешь) так себе оправданьице))
Vlad
тем более если знаешь) так себе оправданьице))
я правильно понял, если я пробрасываю подобным образом, то это дает возможность делать редьюсер Списка, который может менять стейт у Корзины?
Daniil
конечно
Daniil
только экшены не забудь прокинуть от карзины
Daniil
тишина подозрительна...
Anonymous
Мышка в стену улетела наверное ))
Anonymous
У него это как миссия с вертолетиком из гта, только с серваком )
Daniil
кошка полетела вслед за ней))
Anonymous
кошка полетела вслед за ней))
Думаешь он попутно электриком подрабатывает? )
Daniil
хз) вполне) жить нынче сложно))
Anonymous
Ну я бы тогда на его месте кошками не разбрасывался, как на столб лезть потом )
Daniil
за интернетом по сети?
Anonymous
Залезть посмотреть в оптику где там инторнет куда подевался ))
Daniil
тогда ему еще светлячки нужны)
Anonymous
История была, я когда работал у провайдера тянули юрикам сетку, приехали сварщики оптики и тип один говорит на посмотри в оптику яндекс прям так можно увидеть, что за подвох говорю, он ну я типа разок посмотрел в активную оптику теперь у меня один глаз в ч/б свете видит, никогда так не делай ))
Vlad
только экшены не забудь прокинуть от карзины
не совсем уловил момент... если я, например, создаю экшен для списка и соответствующий ему редьюсер (который при вызове будет менять и стейт корзины), то зачем прокидывать экшены для корзины? или я что то не правильно понимаю?
Daniil
и корзина тебе в магазине не нужна корзина должна быть в корзине (я про стейт корзины)
Daniil
в магазине стейт магазина и экшены корзины в корзине стейт корзины и блин тоже экшены корзины
Daniil
тебе не нужен экшен для списка только для корзины если будешь делать как я написал
хотя смотря как ты будешь гонять данные с сервака может и нужно но это дело хозяйское одно другому не мешает
Vlad
тебе не нужен экшен для списка только для корзины если будешь делать как я написал
я имел ввиду, что этот экшен будет гибридным, т.е при его вызове редьюсер списка будет изменять стейт спика + стейт корзины, например
Vlad
в магазине стейт магазина и экшены корзины в корзине стейт корзины и блин тоже экшены корзины
ну стейты то у меня разделены.. у списка свой стейт, у корзины свой..
Daniil
я же писал что стейт магазина лучше получать с сервера, потому что пока ты сидишь в магазине кто-то тоже может набрать товара
Daniil
проимпортировать что ты имеешь в виду?
Vlad
проимпортировать что ты имеешь в виду?
я может не правильно тебя понял. я имел ввиду просто список экшеном проимпортировать в файл с редьюсером, чтобы их не писать каждый раз. Но видимо и правда не правильно понял
Daniil
да не правильно у тебя должен быть экшен который подтягивает в список данные периодически обновляя стейт импорт мне тут думается лишний
Артем
ну что живой?
Ещё не запустил
Daniil
долго что-то мы уже и про мышек и про кошек и про светлячков поговорили))
Daniil
я может не правильно тебя понял. я имел ввиду просто список экшеном проимпортировать в файл с редьюсером, чтобы их не писать каждый раз. Но видимо и правда не правильно понял
где-то у тебя будет фетч, он будет вызывать экшен с полученными данными которые редюсер запихнет в стейт полностью заменив старый стейт
Daniil
ну хорошо
Daniil
только у тебя он что одноразовый?