firebase - Javascript ES6 如何将 const 函数转换为函数
问题描述
尝试使用 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')
})
但我不确定这是否正确......?
解决方案
您的商店操作将采用两个参数。第一个是 vuex 传递的上下文对象,通常被取消引用。我没有你所有的代码,所以我不能为你写一个确切的方法,但它需要是这样的(假设是 es6):
setTodosRef({ commit }, todos) {
commit(types.SET_TODOS, { todos })
}
然后你会有一个处理提交的突变。它还从 vuex 接收一个注入参数作为第一个参数,然后在第二个参数中提供数据,例如:
[types.SET_TODOS](state, { todos }) {
state.todos = todos
}
推荐阅读
- html - 如何在鼠标悬停时使 div 在另一个元素上增长?
- docker - 来自守护进程的错误响应:连接到网络失败,确保您的网络选项正确并检查管理器日志:超出上下文期限
- c# - 反序列化布尔类型的对象时出错,无法将值“”解析为“布尔”类型?
- react-native - 我无法使用本机反应在 android 手机中键入文本输入,键盘在 2 秒内隐藏
- javascript - 如何在 WordPress 中为不存在的子页面显示 404 页面?
- asp.net - Asp.net core 2.2 TypeLoadException:无法加载类型“System.Data.SqlTypes.SqlFileStream”
- php - 一个一个打印的字符串数组
- python - 合并两个文件时如何摆脱此错误“b'log/.ipynb_checkpoints'不存在”?
- bash - 从字符串数组创建文件夹
- php - 带有空格和土耳其字符的 PHP preg_split 字符串