Javascript ES6 Как преобразовать функцию const в функцию - PullRequest
0 голосов
/ 25 июня 2018

При попытке использовать vuexfire для привязок Firebase, в документации указывается следующее действие для привязки

const setTodosRef = firebaseAction(({ bindFirebaseRef, unbindFirebaseRef }, { ref }) => {
  // bunding will automatically unbind any previously bound ref so you
  // don't need to unbind before binding over an existing bound key
  bindFirebaseRef('todos', ref)
  // it is possible to unbind a bound key at any time
  unbindFirebaseRef('todos')
})

В моем хранилище root.js все действия записываются по следующей схеме

/**
 * Import Dependency
 */
import * as types from './mutation_types'
import i18n from '@/locales'
import * as firebase from 'firebase'
import { firebaseMutations, firebaseAction } from 'vuexfire'

setTodosRef ( ) {
  bindFirebaseRef('todos', ref)
  unbindFirebaseRef('todos')
}

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

this.$store.dispatch('setTodosRef', db.ref('todos'))

setTodosRef (firebaseAction(({ bindFirebaseRef, unbindFirebaseRef }, { ref }))  { ... }  

не работает ...

Syntax Error: Unexpected token, expected "," (119:29)

спасибо за отзыв

ОБНОВЛЕНИЕ

Я убрал синтаксическую ошибкуиспользуя

  setTodosRef: firebaseAction(({ bindFirebaseRef, unbindFirebaseRef }, ref) => {
    bindFirebaseRef('todos', ref)
    unbindFirebaseRef('todos')
  })

но я не уверен, что это правильно ...?

1 Ответ

0 голосов
/ 26 июня 2018

Действия вашего магазина будут принимать два аргумента.Первый - это объект контекста, передаваемый vuex и обычно разыменовываемый.У меня нет всего вашего кода, поэтому я не могу написать точный метод для вас, но он должен быть примерно таким (при условии es6):

setTodosRef({ commit }, todos) {
  commit(types.SET_TODOS, { todos })
} 

Тогда у вас будет мутацияэто обрабатывает фиксацию.Он также получает введенный параметр в качестве первого аргумента от vuex, затем вы предоставляете данные во втором аргументе, например:

[types.SET_TODOS](state, { todos }) {
  state.todos = todos
}

https://vuex.vuejs.org/guide/actions.html

...