我有一個(gè)應(yīng)用程序,用戶可以在其中手動(dòng)刪除帖子中的文本和文件附件。它工作正常,用戶可以刪除帖子中的文本和附件,但是,問(wèn)題是當(dāng)用戶選擇“取消”按鈕時(shí)——附件仍然顯示編輯過(guò)的附件項(xiàng)目。期望的結(jié)果是將附件恢復(fù)到原始列表。有人對(duì)我如何解決這個(gè)問(wèn)題有任何建議嗎?我在這里設(shè)置了一個(gè)演示:Codesandbox(單擊 POSTS --> POST ID --> EDIT POST --> 刪除附件 --> CANCEL EDIT)我正在使用道具將數(shù)據(jù)傳遞給子組件:父組件命名為PostDetail.vue:模板:<section v-if="editPostFormIsVis"> <EditPost :post="post" @update="editPostFormIsVis=false" @cancel="editPostFormIsVis = false" :attachmentsArray="attachmentsArray" @deleteMediaAttachment="removeItem" /> </section>腳本:import attachments from "../../public/attachments.json";import EditPost from "@/components/EditPost.vue";export default { components: { EditPost }, data() { return { post: {}, editPostFormIsVis: false, attachmentsArray: attachments }; }, created() { this.getPost(); }, methods: { getPost() { axios .get( "https://jsonplaceholder.typicode.com/posts/" + this.$route.params.id ) .then(resp => { this.post = resp.data; }) .catch(err => { console.log(err); }); }, editPost() { this.editPostFormIsVis = true; }, removeItem: function(item) { this.attachmentsArray.attachments.splice(item, 1); } }, computed: { emailAttachmentsFileNames() { if (this.attachmentsArray.emailAttachments) { const emailAttachmentsFileNameArray = this.attachmentsArray.emailAttachments.map( item => { const tokens = item.split("/"); return tokens[tokens.length - 1]; } ); return emailAttachmentsFileNameArray; } else { return null; } },
取消后VueJS表單不會(huì)恢復(fù)到原始狀態(tài)
拉風(fēng)的咖菲貓
2021-09-17 10:30:47