javascript - 无法使用来自外部组件的事件触发器发出 POST 请求(带数据)
问题描述
我正在尝试使用一个组件中的单击事件来触发另一个组件中的方法,到目前为止效果很好......除了应该在我的 POST 请求中传递的数据没有被发送。
但是,当我通过在包含 API 调用方法的组件中调用它来测试它时,它工作正常。
想法?
从 Dashboard .vue 传递的数据 -
// Data to be loaded into s3 bucket
this.s3Data.push([`Longitude: ${this.lng}, Latitude: ${this.lat}, Uncertainty Radius: ${this.uncertainty_radius} meters, Address: ${this.place_name}, Source: TEXT`])
this.s3Data = JSON.parse(JSON.stringify(this.s3Data))
从 Dashboard.vue 调用的方法 -
uploadToS3() {
axios.post("http://localhost:8080/api/v1/targetLocation/uploadLocationsToS3Bucket", this.s3Data,
{headers: {'Content-Type': 'application/json'}})
},
来自 Applayout.vue 的方法触发事件 -
HTML
<v-btn @click="uploadDataToS3" outlined dark data-test="end-tracking-button">End Tracking</v-btn>
JS
import Dashboard from "@/pages/Dashboard/desktop/Dashboard.vue";
uploadDataToS3() {
Dashboard.methods.uploadToS3()
},
解决方案
在我看来,最好的解决方案是使用mixins。
您将能够从任何组件调用此方法和其他方法,而无需在组件之间使用 props
或进行通信bus
。
进一步说明:
如果你想连接到一个 api,这个函数不需要在一个组件上。
如果它是一个由不同组件调用的函数。在我看来,最好的解决方案是在一个 mixins 文件中创建它,并从每个需要它的组件中调用它。
推荐阅读
- python - 在多项目列表中拆分字符串,同时将项目保持在一起
- ios - SwiftUI 内存管理
- node.js - 每当我尝试使用我的清除命令时,我的机器人在不和谐聊天中说“无效用户”在 cmd 或终端中没有错误消息
- swift - 导航离开时如何从一个 ViewController 上的 UIView 子视图中处理
- typescript - 获取未实例化的通用类型的键和值类型
- python - 共享使用 Google Sheets API 而不共享凭据的 Python 可执行文件
- netsuite - NetSuite 加载前取消操作
- python - 如何解压元组列表并在 SQLITE3 Python3 列中的多行中重写表?
- apache - 将 {query}.ts 重写为 ts.php?{query}
- javascript - 对于异步函数,我应该使用 await 调用堆栈多远?