반응형
데이터에 추가한 후 Vue에서 PK를 렌더링하지 않음
데이터를 삽입할 때 pk를 렌더링하는 데 문제가 있습니다.나는 또한 pk를 사용하여 항목을 삭제할 것입니다.
<template>
<div class="hello">
<p>Username</p>
<input type="text" v-model="users_name">
<p>Mac Address</p>
<input type="text" v-model="msgBody">
<br><br>
<input
type="submit"
value="Add"
@click="addMaclist({ users_name: users_name, mac_id: msgBody })"
:disabled="!users_name || !msgBody">
<hr/>
<h3>Mac Address on Database</h3>
<p v-if="maclists.length === 0">No Maclists</p>
<ul>
<li v-for="(users, index) in maclists" :key="index">
<p>{{ index }}</p>
<p v-html="users.users_name"></p>
<p v-html="users.msgBody"></p>
<input type="submit" @click="deleteMaclist(users.pk)" value="Delete" />
</li>
</ul>
</div>
</template>
<script>
import { mapState, mapActions } from 'vuex'
export default {
name: "Maclists",
data() {
return {
users_name: "",
msgBody: "",
};
},
computed: mapState({
maclists: state => state.maclists.maclists
}),
methods: mapActions('maclists', [
'addMaclist',
'deleteMaclist'
]),
created() {
this.$store.dispatch('maclists/getMaclists')
}
};
</script>
여기는 나의 json rest입니다.
[
{
"url": "http://127.0.0.1:8000/api/maclist/24/",
"users_name": "test1",
"mac_id": "test1",
"pk": 24
}
]
모듈은 아래의 addMaclist 및 deleteMaclist에 해당합니다.
import maclistService from '../../services/maclistService'
const state = {
maclists: []
}
const getters = {
maclists: state => {
return state.maclists
}
}
const actions = {
getMaclists ({ commit }) {
maclistService.fetchMaclists()
.then(maclists => {
commit('setMaclists', maclists)
})
},
addMaclist({ commit }, maclist) {
maclistService.postMaclist(maclist)
.then(() => {
commit('addMaclist', maclist)
})
},
deleteMaclist( { commit }, msgId) {
maclistService.deleteMaclist(msgId)
commit('deleteMaclist', msgId)
}
}
const mutations = {
setMaclists (state, maclists) {
state.maclists = maclists
},
addMaclist(state, maclist) {
state.maclists.push(maclist)
},
deleteMaclist(state, msgId) {
state.maclists = state.maclists.filter(obj => obj.pk !== msgId)
}
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}
삭제 시 pk를 찾을 수 없는 오류가 있습니다.
DELETE http://localhost:8080/api/maclist/undefined/404(찾을 수 없음)
하지만 삭제 버튼을 실행하기 전에 수동으로 페이지를 새로 고치면 pk를 찾을 수 있습니다.
방금 추가한 항목을 삭제하려는 것으로 추정할 수 있습니다.당신의 문제는 당신의 것입니다.addMaclist
동작...
addMaclist({ commit }, maclist) {
maclistService.postMaclist(maclist)
.then(() => {
commit('addMaclist', maclist)
})
}
커밋할 때maclist
이것은 이러한 속성만 가지고 있는 구성 요소에서 전송된 것과 동일한 개체입니다.
{ users_name: users_name, mac_id: msgBody }
만약 당신의 REST API가 잘 만들어졌고 새롭게 지속된 모델로 응답한다면, 당신은 이것을 대신 사용할 수 있을 것입니다.
addMaclist({ commit }, maclist) {
maclistService.postMaclist(maclist)
.then(model => {
commit('addMaclist', model) // add the model from the response
})
}
언급URL : https://stackoverflow.com/questions/58072697/vue-wont-render-my-pk-after-adding-to-data
반응형
'IT' 카테고리의 다른 글
iOS 6의 레이블 정렬 - UI 텍스트 정렬 사용 안 함 (0) | 2023.06.12 |
---|---|
NSDateFormatter 로케일 "기능"을 처리하는 가장 좋은 방법은 무엇입니까? (0) | 2023.06.12 |
휠 파일 설치 (0) | 2023.06.12 |
판다 다중 인덱스에 레벨 추가 (0) | 2023.06.12 |
ggplot2에서 산점도 행렬(쌍() 등가) 생성 (0) | 2023.06.12 |