Daniil
то получается мне нужно через mapStatetoProps в Корзину тоже пробросить стейт с товаром, полученный изначально в компоненте со Списком? или это бред? — вообще не понял
Vlad
сейчас попытаюсь объяснить
Daniil
у тебя есть экшены через них и работай чтобы отобразить корзину бери стейт корзины зачем тебе в корзине стейт магазина
Daniil
Daniil
Vlad
т.е. типа в MyCart = { } помещался такой же объект, который пришел через api
Daniil
кликнул на товар вызвал экшен
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 но если хочешь так то храни так
Daniil
Vlad
это получается нужно один общий редьюсер сделать?
потому что у меня разбито по отдельности
есть редьюсер для Корзины, есть редьюсер для Списка, я каждого свой стейт
Daniil
ты используешь хуки?
Vlad
нет, я по старинке через классы
Daniil
тем более
Daniil
редакс это один общий стейт на все приложение
Daniil
с хуками тоже можно так сделать при желании
Vlad
я хуков пока еще не касался, хочу сначала сделать реализации на том как раньше было, потому что это нужно...
Daniil
кинь сюда какой-нить mapPropsToState
Артем
Ну что давайте проверять запустится ли сегодня мой сервер😄
Daniil
ну вот у тебя написано state.products с таким же успехом ты тут можешь рядом прописать state.корзины
Daniil
Vlad
Daniil
да
Daniil
в ретурне можешь не дублировать через двоеточие - это лишнее в es6
Vlad
тем самым дав возможность менять в редьюсере списка стейт у Корзины?
Vlad
Daniil
тем более если знаешь) так себе оправданьице))
Daniil
конечно
Daniil
только экшены не забудь прокинуть от карзины
Daniil
Daniil
тишина подозрительна...
Anonymous
Мышка в стену улетела наверное ))
Anonymous
У него это как миссия с вертолетиком из гта, только с серваком )
Daniil
кошка полетела вслед за ней))
Daniil
хз) вполне) жить нынче сложно))
Anonymous
Ну я бы тогда на его месте кошками не разбрасывался, как на столб лезть потом )
Daniil
за интернетом по сети?
Anonymous
Залезть посмотреть в оптику где там инторнет куда подевался ))
Daniil
тогда ему еще светлячки нужны)
Anonymous
История была, я когда работал у провайдера тянули юрикам сетку, приехали сварщики оптики и тип один говорит на посмотри в оптику яндекс прям так можно увидеть, что за подвох говорю, он ну я типа разок посмотрел в активную оптику теперь у меня один глаз в ч/б свете видит, никогда так не делай ))
Vlad
только экшены не забудь прокинуть от карзины
не совсем уловил момент...
если я, например, создаю экшен для списка и соответствующий ему редьюсер (который при вызове будет менять и стейт корзины), то зачем прокидывать экшены для корзины? или я что то не правильно понимаю?
Daniil
Daniil
Daniil
и корзина тебе в магазине не нужна корзина должна быть в корзине (я про стейт корзины)
Daniil
в магазине стейт магазина и экшены корзины в корзине стейт корзины и блин тоже экшены корзины
Vlad
Vlad
Daniil
я же писал что стейт магазина лучше получать с сервера, потому что пока ты сидишь в магазине кто-то тоже может набрать товара
Daniil
проимпортировать что ты имеешь в виду?
Vlad
проимпортировать что ты имеешь в виду?
я может не правильно тебя понял. я имел ввиду просто список экшеном проимпортировать в файл с редьюсером, чтобы их не писать каждый раз. Но видимо и правда не правильно понял
Daniil
да не правильно у тебя должен быть экшен который подтягивает в список данные периодически обновляя стейт импорт мне тут думается лишний
Daniil
долго что-то мы уже и про мышек и про кошек и про светлячков поговорили))
Daniil
Артем
Vlad
Daniil
ну хорошо
Daniil
только у тебя он что одноразовый?