【发布时间】:2021-11-23 07:47:49
【问题描述】:
我正在尝试使用来自一个组件的点击事件来触发另一个组件中的方法,到目前为止效果很好......除了应该在我的 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()
},
【问题讨论】:
-
您可以使用 eventBus 从 Applayout 发出一个事件,然后从 Dashboard.vue 中捕获它,然后触发处理程序
-
@Amaarrockz 触发 API 调用的事件总线?我不需要传递数据,所以我可以用它来简单地触发它?
-
如果有任何数据你需要从这里传递到那里,那么就去吧,否则没有必要
标签: javascript api vue.js axios