Как изменить состояние из магазина vuex для всех пользователей - PullRequest
0 голосов
/ 27 мая 2020

Здравствуйте, я использую nuxt для CRM, но у меня проблема с vuex. Когда я обновляю магазин, он обновляется не для всех пользователей. Я использую stati c deploiement на vps, и я использую REST API для связи с моей базой данных mysql. И я использую модульный режим для vuex.

Так, например, мой магазин выглядит так:

роль / действия. js

export default {
  updateProsit: (context, value) => {
    context.commit('updateProsit', value)
    const equipe = (value % 11) + 1
    context.commit('updateEquipe', equipe)
  }
}

роль / геттеры. js

export default {
  role (state) {
    return state.role
  },
  numProsit (state) {
    return state.numProsit
  },
  equipe (state) {
    return state.equipe
  },
  currentEquipe (state) {
    const out = []

    state.role.forEach(function (item) {
      if (item.equipe === state.equipe) {
        out.push({
          role: 'Animateur',
          user: item.Animateur,
          avatar: 'https://luckysketch.files.wordpress.com/2017/06/chibi-siberian-husky.png'
        })
        out.push({
          role: 'Secretaire',
          user: item.Secretaire,
          avatar: 'https://luckysketch.files.wordpress.com/2017/06/chibi-siberian-husky.png'
        })
        out.push({
          role: 'Scribe',
          user: item.Scribe,
          avatar: 'https://luckysketch.files.wordpress.com/2017/06/chibi-siberian-husky.png'
        })
        out.push({
          role: 'Gestionaire',
          user: item.Gestionaire,
          avatar: 'https://luckysketch.files.wordpress.com/2017/06/chibi-siberian-husky.png'
        })
      }
    })

    return out
  }
}

роль / мутации. js

export default {
  // eslint-disable-next-line no-return-assign
  updateProsit: (state, data) => state.numProsit = data,
  // eslint-disable-next-line no-return-assign
  updateEquipe: (state, data) => state.equipe = data
}

роль /state.js

export default () => ({
  role: [
    {
      equipe: 1,
      Animateur: 'Gurvan',
      Secretaire: 'Francois',
      Scribe: 'Benjamin',
      Gestionaire: 'Kevkev'
    },
    {
      equipe: 2,
      Animateur: 'Kevkev',
      Secretaire: 'Remi',
      Scribe: 'Louis',
      Gestionaire: 'Francois'
    },
    {
      equipe: 3,
      Animateur: 'Francois',
      Secretaire: 'Julien',
      Scribe: 'Gwn',
      Gestionaire: 'Mmouky'
    },
    {
      equipe: 4,
      Animateur: 'Remi',
      Secretaire: 'Benjamin',
      Scribe: 'Armand',
      Gestionaire: 'Gurvan'
    },
    {
      equipe: 5,
      Animateur: 'Pauline',
      Secretaire: 'Gwn',
      Scribe: 'Mmouky',
      Gestionaire: 'Armand'
    },
    {
      equipe: 6,
      Animateur: 'Benjamin',
      Secretaire: 'Kevkev',
      Scribe: 'Julien',
      Gestionaire: 'Gwn'
    },
    {
      equipe: 7,
      Animateur: 'Mmouky',
      Secretaire: 'Gurvan',
      Scribe: 'Remi',
      Gestionaire: 'Pauline'
    },
    {
      equipe: 8,
      Animateur: 'Gwn',
      Secretaire: 'Pauline',
      Scribe: 'Francois',
      Gestionaire: 'Louis'
    },
    {
      equipe: 9,
      Animateur: 'Louis',
      Secretaire: 'Mmouky',
      Scribe: 'Kevkev',
      Gestionaire: 'Remi'
    },
    {
      equipe: 10,
      Animateur: 'Julien',
      Secretaire: 'Armand',
      Scribe: 'Gurvan',
      Gestionaire: 'Benjamin'
    },
    {
      equipe: 11,
      Animateur: 'Armand',
      Secretaire: 'Louis',
      Scribe: 'Pauline',
      Gestionaire: 'Julien'
    }
  ],
  currentEquipe: [],
  numProsit: 13,
  equipe: 3
})

Итак, когда я обновляю NumProsit, он обновляет equipe, а затем currentEquipe получает соответствующее оборудование от роли. И это работает, но только у меня остальные пользователи не видят обновления. Поэтому мне было интересно, нужно ли мне использовать мою базу данных для хранения этих данных или существует решение с vuex.

Я, вероятно, неправильно понял какой-то момент с vuex.

Большое спасибо.

1 Ответ

0 голосов
/ 27 мая 2020

Vuex предназначен для управления состоянием приложения в браузере для одного пользователя. Что вы хотите сделать, так это изменить состояние для нескольких пользователей. Это потребует от вас использования реализации веб-сокета. Это позволит вашему бэкэнду транслировать изменения в ваше клиентское приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...