@SherbakovFirst

Как передать контекста this из передаваемых параметров функции?

Добрый день или вечер. Есть функция, которая висит на 3 кнопках. Функция выполняет сортировку, разница только в передаваемых параметрах. Код на Vue если что

sortEl(positiveStr, negativeStr, key, variable ){
      if(this.variable === positiveStr){ // Если состояние == определённому имени
        this.post = this.posts.sort((a,b)=> a[key] < b[key] ? 1 : -1) // Обычная сортировка, но обратная
        this.variable = negativeStr // Смена состояния, чтобы при клике всё срабатывало обратно
      } else {
        this.post = this.posts.sort((a,b)=> a[key] > b[key] ? 1 : -1) // Сортировка обычная
        this.variable = positiveStr // Такая же смена
      }
      variable // Костыль. Если удалить функция не срабатывает. Если его убрать, то передаваемый параметр не видно. Словно я не задействовал его
    },

// Пример вызова функции
@click="sortEl('plus', 'minus', 'id', typeSortID)

Сейчас функция срабатывает, но некорректно. Массив фильтруется. Элементы фильтруются и всё классно, на вид. Но состояние не меняется. Ошибок в консоле нет
Зачем мне это надо? В зависимости от состояния я хочу менять rotate у стрелочки. Да, я могу сделать смену прям в функции, но это будет ужасно
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
@SherbakovFirst Автор вопроса
Всё было намного проще
@click="sortEl('plus', 'minus', 'id', typeSortID) // typeSortID помещаем в кавычки, ведь ты мы хотим обратиться по этому ключу, а не получить значение


А в остальном везде this.variable меняем на this[variable]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы