@wipe0009

Почему vue ругается на myMap.delete(mapKey)?

Здравствуйте, я хочу чтоб нажав на елемент - удалился елемент из map
для етого хочу использовать .delete(mapKey)
<template>
  <div>
    <div v-for="mapKey of messages.keys()" :key="mapKey">
      <div @click="messages.delete(mapKey)"></div>
    </div>
  </div>
</template>

<script>
export default {
  name: "HelloWorld",
  data() {
    return {
      messages: new Map(),
    };
  },
};
</script>

Но получаю ошибку
Errors compiling template:

  avoid using JavaScript unary operator as property name: "delete(mapKey)" in expression @click="messages.delete(mapKey)"

  2  |  <div class="messenger">
  3  |    <div v-for="mapKey of messages.keys()" :key="mapKey">
  4  |      <div @click="messages.delete(mapKey)"></div>
     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  5  |    </div>
  6  |  </div>

Ругается именно на слово delete(), если я допущу ошибку в написании delete - все работает...
  • Вопрос задан
  • 97 просмотров
Решения вопроса 2
Fragster
@Fragster
помогло? отметь решением!
@click="()=>messages.delete(mapKey)"
Ответ написан
Комментировать
@wipe0009 Автор вопроса
В качевстве решения можно использовать
methods: {
      deleteFromMap(map, key) {
        map.delete(key);
      },
    },

@click="deleteFromMap(messages, mapKey)"
И как вариант функцию можно поместить в глобальные миксины
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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