@Sergey750il

Как добавить параметры в query?

Здравствуйте. в фильтре есть параметры материал, страна производитель итд, под каждым заголовком свой набор чекбоксов с id. Как правильно добавить эти параметры в query, группируя по типу заголовка?
this.$router.push({
                query: {
                    ...this.$route.query,
                    [itemNameParent]: 1 2 4,
                },
            })

Сейчас с этим кодом происходит перезапись параметра, а нужна конкатенация
  • Вопрос задан
  • 327 просмотров
Решения вопроса 2
yarkov
@yarkov Куратор тега Vue.js
Помог ответ? Отметь решением.
Ну сначала прочитать, потом объединить и только потом перезаписать
Ответ написан
Aetae
@Aetae Куратор тега Vue.js
Тлен
Нужна - сделайте. Это элементарный javascript, vue тут не при чём.
типа этого
function concatenateFieldValue(previous, value) {
  if (typeof value !== 'string')
    value = String(value);
  if (!previous)
    return value;

  const uniqueValues = splitFieldValues(previous);
  uniqueValues.add(value.trim());

  return [...uniqueValues].join(' ');
}

function splitFieldValues(values) {
  return new Set(values.split(' ').filter(Boolean));
}

function getUpdatedQuery(query, field, value) {
  return {
    ...query,
    [field]: concatenateFieldValue(query[field], value)
  }
}


this.$router.push({
  query: getUpdatedQuery(
    this.$route.query, 
    itemNameParent, 
    e.target.value
  )
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы