Как получить состояния из хранилища Vuex из списка Vuetify, VueJs

Как это должно работать, насколько я могу судить, проверяет, пуст ли пул (0) списка или состоит из singleton (1) через x.occupants, где x - определенный элемент в пределах и может иметь характеристику обитателей. Таким образом, foo получает вызов, перемещается по списку и затем возвращает все элементы, которые передают условие проверки, которое является x.occant.

На языке, подобном Java, вы должны создать класс с именем «x», x 'затем присваиваются массиву или тому подобное. X будет иметь поле, называемое «оккупантами», и каждый индекс будет проверяться с помощью метода x.occupants, который возвращает номер, присвоенный оккупанту. Если этот метод возвращается больше 1 (мы предполагаем, что int здесь, поскольку частичный пассажир был бы нечетным). Метод foo (вызывается в массиве или аналогичном в вопросе.) Затем возвращал массив или аналогичный, как определено в методе foo для этого контейнера или того, что у вас есть. Элементы возвращаемого массива будут объектами «x» в первом массиве thingie, которые соответствуют критериям «Больше чем 1».

Python имеет встроенные методы посредством понимания списка, чтобы справиться с этим в гораздо более сжатым и значительно упрощенным способом. Вместо того, чтобы реализовывать два полных класса и несколько методов, я пишу одну строку кода.

1
задан thatOneGuy 13 July 2018 в 10:10
поделиться

2 ответа

Почему вы хотите, чтобы функция value была функцией, возвращающей значение состояния. Вы можете просто назначить его значению state, используя this.$store.state.myStore.settings.one

. Для этого сделайте опцию data нормальной функцией вместо функции стрелки, чтобы this все еще представлял экземпляр vue

export default {
  name: "myList",
  data() {
    return {
      show: true,
      listContent: [
        {
          name: "1",
          icon: "person",
          value: this.$store.state.myStore.settings.one
        },
        {
          name: "2",
          icon: "person",
          value: this.$store.state.myStore.settings.two
        },
        {
          name: "3",
          icon: "person",
          value: this.$store.state.myStore.settings.three
        }
      ]
    };
  }
};
2
ответ дан Vamsi Krishna 17 August 2018 в 13:10
поделиться
  • 1
    я получаю «Не могу прочитать свойство« состояние неопределенного » – thatOneGuy 13 July 2018 в 10:30
  • 2
    @thatOneGuy он работает. Смотрите скрипт . Вы зарегистрировали модули как массив или объект? – Vamsi Krishna 13 July 2018 в 11:00
  • 3
    @ VamsiKrishna видит журнал, он не определен – Ankit Kumar Ojha 13 July 2018 в 11:03
  • 4
    для функций стрелок это контекстуально. – Ankit Kumar Ojha 13 July 2018 в 11:24
  • 5
    @thatOneGuy я упомянул в своем ответе. arrow функции связывают this лексически. Vue позаботился о привязке this к экземпляру vue, поэтому используйте обычную функцию. Не только для data, но также для methods, computed, watchers – Vamsi Krishna 13 July 2018 в 11:25

Может быть, это поможет. Длинный, но он работает.

const myModule = {
  state: {
    test: "modulle",
    settings: {
      one: "This is one",
      two: "This is two",
      three: "This is three"
    }
  }
};

const store = new Vuex.Store({
  modules: { myModule }
});

new Vue({
  el: "#app",
  store,
  data() {
    return {
      listContent: [
        {
          name: "1",
          icon: "person",
          value: null
        },
        {
          name: "2",
          icon: "person",
          value: null
        },
        {
          name: "3",
          icon: "person",
          value: null
        }
      ]
    };
  },
  watch:{
    '$store.state.myModule.settings.one':{
        immediate:true,
      handler:function(value){
            this.listContent[0].value = value;
      }
    },
    '$store.state.myModule.settings.two':{
        immediate:true,
      handler:function(value){
            this.listContent[1].value = value;
      }
    },
    '$store.state.myModule.settings.three':{
        immediate:true,
      handler:function(value){
            this.listContent[2].value = value;
      }
    },
  }
});
0
ответ дан Ankit Kumar Ojha 17 August 2018 в 13:10
поделиться
Другие вопросы по тегам:

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