我正在尝试将以下内容从ES2015翻译为vanilla javascript:
fileA.js
export const checkout = ({ dispatch }) => {
dispatch(types.CHECKOUT_REQUEST)
}
fileB.js
import checkout;
checkout();
到目前为止(使用https://babeljs.io/repl/)我有:
fileA2015.js:
module.exports = {
checkout: function (_ref) {
dispatch = _ref.dispatch;
dispatch(types.CHECKOUT_REQUEST)
}
};
但我无法弄清楚要传递给fileB中checkout
的内容,以便能够访问正确的_ref
。这是什么以及它来自哪里?
答案 0 :(得分:0)
hostfile
在上面的函数中,您正在对一个对象进行解构,该对象应该具有export const checkout = ({ dispatch }) => {
dispatch(types.CHECKOUT_REQUEST)
}
属性。 dispatch
中的回调函数。
当您将dispatch
对象作为参数传入时,由于data
会导致传入的对象失败,因此它应该具有{ dispatch }
属性。
dispatch
因此,当var data = {
dispatch: (type) => {
.......
}
};
中引用并调用checkout
方法时,您必须在此时传入数据对象。
<强> fileB.js 强>
fileB.js
答案 1 :(得分:0)
让我们在这里注意几件事:
''
在上面的代码中,export const checkout = ({ dispatch }) => {
dispatch(types.CHECKOUT_REQUEST)
}
是一个需要单个参数的函数 - 特别是具有属性checkout()
的对象。 dispatch
也应该是一个功能。
如果您未将任何参数传递给dispatch
(或者没有checkout()
属性的对象),则dispatch
将不确定。
因此你需要传递类似的东西:
dispatch