我想在 vue.js 应用程序中动态创建 axios post 操作的 URL 路径
这是动作:
editProduct: function ({dispatch, commit}, payload) {
axios
.put('http://localhost:8081/product/5b5ca691e4f0d93c18e3f6d9', payload)
.then(res => dispatch('loadProducts', res.data))
.catch(function (error) {
console.log(error)
})
.then(() => {
commit('clearAddEditProduct')
})
}
我想用该州的任何内容替换“5b5ca691e4f0d93c18e3f6d9”
state: { // data
product: {
name: '',
description: '',
externalid: '',
active: '',
id: ''
}
具体是产品 ID
有什么建议么?
Use the state
从上下文传递到您的操作。
例如
editProduct: function ({dispatch, commit, state}, payload) {
// note the return below. This lets you compose actions
return axios
.put(`http://localhost:8081/product/${encodeURIComponent(state.product.id)}`, payload)
// etc
See https://vuex.vuejs.org/guide/actions.html https://vuex.vuejs.org/guide/actions.html特别要注意的是组合动作 https://vuex.vuejs.org/guide/actions.html#composing-actions部分。
请注意,我正在使用模板文字 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals格式化 URL 字符串。这相当于
'http://localhost:8081/product/' + encodeURIComponent(state.product.id)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)