我有一个计算工作班次的后端。我试图张贴一些所需的用户输入与服务/班次的模块。getAll方法工作正常,但提交会抛出错误
TypeError:services_shifts__WEBPACK_IMPORTED_MODULE_2_.default.postData不是函数
Shiftservice模块:
import axios from 'axios'
const baseUrl = '...'
const getAll = () => {
const request = axios.get(baseUrl)
return request.then(response => response.data)
}
const postData = newObject => {
const request = axios.post(baseUrl, newObject)
return request.then(response => response.data)
}
export default {getAll, postData}
我有一个按钮,单击时触发以下调用代码:
import shiftService from './services/shifts'
const postData = (event) => {
event.preventDefault()
const sampleObject = {
sampleField: sample
}
shiftService
.postData(sampleObject)
.then(returnedData => {
console.log(returnedData)
})
}
当执行到达shiftService.postData时,将抛出错误。
我真的很困惑,因为我基本上是复制一些旧的项目,我的作品,但在这里,我只是没有找到问题。提前感谢您对新人的帮助!
4条答案
按热度按时间arknldoa1#
模块提供了特殊的导出默认值***(“默认导出”)语法,以使“每个模块一件事”***的方式看起来更好。每个文件可能只有一个导出默认值。在下面的示例中,我们可以忽略类名。
然后不带任何名称的花括号导入它:
您的方案有两个函数是不同的。您可以导出默认的一个函数
以及正常导出其他功能。
在导入时
或
在Shiftservice模块中删除
default
并正常导出:导入您的模块
或
然后使用
shiftServer.postData()
.....jyztefdp2#
好吧,我对这个解决方案感到尴尬。我只是从一个错误的文件夹中编辑了一个早期版本的shiftService,而导入的服务中只有get方法。
所以我的代码实际上工作,如果放置正确。感谢您的时间,并感谢分享替代方法,必须工作以及。
s6fujrry3#
我认为这是因为你将函数声明为箭头函数并以这种方式导出:
export default {getAll, postData}
你需要将它们声明为普通函数
应该可以
dxxyhpgq4#
有点尴尬,但在我的情况下,问题是由于重构,我在同一个目录中同时拥有
module.js
和module.ts
。