Завтра
На слуху нет, но я хейчу axios за interceptors
Дима
мне нужен глобальный хук для нормализации всех ответов и "локальный" хук, для нормализации конкретных запросов.
Завтра
Для этого есть Apicase.of
Дима
а после (т.к. гоферы должны страдать) мне нужно открывать вебсокет соединение и ждать окончания работы.
ах да, перед этим я должен научить js цифры в строки превращать автоматом при жсонофикации. ВЕДЬ В ГО ТАК ПРОЩЕ И МЫ БУДЕМ ТАКУЮ ЕБАНУТУЮ АПИШКУ ДЕЛАТЬ
Дима
умирте.
Дима
https://github.com/apicase/apicase-core
Дима
где ws в адаптерах?
Дима
оно сейчас вроде как даже популярнее socketio
Завтра
Я сейчас одну багу пофиксить хочу
Завтра
ну уже завтра сделаю это, сегодня уже поздно
Дима
ты кстати джуна на свои рулеточки нашел?
Завтра
Суть в чем
Несколько раз вызванный Apicase.of().of() багается и кладет в опции не то, что нужно
А Apicase.container как раз вызывает of для каждого
То есть Apicase.of().container() сейчас не робит
Но там мелочь, я пофикшу, просто если что - держу в курсе)
Дима
забавно.
Дима
слушай, всё круто, но может тебе не адаптеры сделать в той либе
Дима
точнее не так
Дима
что если адаптеры вынести в основные отдельные пакеты
Дима
тогда ты сможешь фигачить более высокие уровни абстракции и запилить также как в apipie а то и проще
Дима
всё равно все эти твои хуки и так далее будут разниться от адаптера к адаптеру
Завтра
Дима
Завтра
В первом это mergeDeep, во втором mergeWith(concat)
Завтра
Дима
так ассигн же в глубь тоже мержит
Завтра
Нет
Дима
> Object.assign({f: 1, g: {a: 33}}, {g:{a:34}})
{ f: 1, g: { a: 34 } }
Завтра
О.о чет не помню такого, всегда были кучи deepmerge хэлперов
не суть
Завтра
Oleg
#whois Салют. Работаю в вебе давно. Сам маркетолог, специализируюсь на соц. сетях.
Умею кодить на php + js, пользуюсь laravel + vue js. До недавнего времени сидел на ангуляре первом.
У меня агентство своё. Где я официально один и переодически на удаленке помогают по коду и всему остальному. Больше времени я делаю рекламу, так что скил в коде растёт медленнее :)
Сейчас конкретно развиваем приложения свои для работы с соц. медиа. Раз-два в месяц сайты пилим клиентам. Вроде все. Зовут Олег, рад знакомству.
Дима
чет у тебя энивей сложнее.
Завтра
Дима
но лан, завтра я тоже запилю что-то подобное
Дима
мне очень нужно.
Завтра
Я не про это
Oleg
Завтра
base.query тебе не нужно дергать)
Завтра
Apicase.of({ hooks }).container(services)
Завтра
Вот что тебе нужно
Завтра
Здесь нет сложности - здесь просто еще один слой абстракции, который ты опишешь один раз в жизни (максимум - один раз в проекте) и будешь радоваться
Завтра
Запушил фикс в обоих пакетах, если что
Ушел баиньки 😴
Rafael 🌵
Rafael 🌵
все доки не актуальны
Сегодня попробую старую версию в отдельную ветку закинуть, там и старые доки будут
Rafael 🌵
Alexey
Всем привет. Вопрос такой. Почему теряется реактивность?
computed: {
partnerCart () {
return this.$store.getters.getPartnersCarts[this.index]
},
showOptions () {
return this.partnerCart.showOptions
}
},
В vuex getPartnersCarts поменял в нужном элементе массива значение showOptions, а в компоненте это не отобразилось
Flexo
Как поменял?
Alexey
register (partnerCart) {
// Обработчик кнопки "Оформить заказ"
this.$store.commit('setpartnerCartShowOptions', partnerCart)
}
Flexo
Это экшн. Мутацию покажи
Alexey
Это вызов мутации, вот мутация:
Alexey
export const setpartnerCartShowOptions = (state, payload) => {
for (let key in state.partnersCarts) {
if (state.partnersCarts[key].partner_id == playload.partner_id) {
state.partnersCarts[key] = payload
state.partnersCarts[key].showOptions = true
}
}
}
Rafael 🌵
Flexo
Vue.set(state.partnersCarts, key, payload)
Попробуй как то так
Alexey
Rafael 🌵
Тебе Дмитрий уже сказал решение
Alexey
Да, не реактивные данные. Но решение Дмитрия не работает, если надо добавить к вложенному объекту значение. Типа так Vue.set(state.partnerCarts[key], showOptions, true)
Michel
'showOptions' же
Alexey
Alexey
Vue.set() не добавило реактивности. Вот шляпа. Значит проблема глубже.
Michel
А до этого у тебя в partnerCarts не существовало свойства showOptions ?
Alexey
Нет
Michel
Сделай так чтобы существовало ( например showOptions = null)
Michel
Иначе vue некуда втыкать свои геттеры и сеттеры
Alexey
А если создавать это свойство в момент создания объекта partnerCarts?
Michel
ну да
Alexey
state.partnersCarts = payload
for (let item in state.partnersCarts) {
Vue.set(state.partnersCarts[item], 'showOptions', state.partnersCarts[item] ? state.partnersCarts[item].showOptions : false)
}
Alexey
в момент создания значение undefined
Alexey
Но это не помогло
Rafael 🌵
Может уже стоит закинуть код куда-нибудь, а?
Michel
@Fl0pZz так ему его не выкусить / долго выкусывать из проекта походу
Michel
@leshgan тогда моей телепатии не хватает
Alexey
Смысл в чём. Приходит из бэка корзина с товарами, мне надо в этом объекте (или не надо? или не в этом объекте, а создать другой?) добавить свойства showOptions и isCommited чтобы в зависимости от их значений отображать форму ввода опций. Вот как бы вы сделали?
Alexey
Причём корзина состоит из нескольких корзин (partners), поэтому там цикл по объекту.
Michel
я бы написал как-то так state.partnerCarts = payload.map(item => ({ ...item, isComitted: null, showOptions: null }))
Michel
@leshgan тогда тебе надо мержить пришедшее с бека с уже имеющимся стейтом. Как это делать - вопрос глубокий, философский, тебе самому надо принять решение.