--- tags: Vue 直播班 - 2021 夏季班 --- # 6/16 線上 Slack 助教 ## 今日助教輪班時間 暄雯:6/16 (三) 回覆時間:上午 9:00 - 下午 1:00 ## 發問規範 老師助教同學們好,**這是我的 Codepen**,我**原本預期**「JS 第 8 行會出現數字 8」,**但卻出現**「預期外的結果是 0」,想問下問題出在哪裡? ## 注意 1. 請各位先到 Slack 上將問題放在助教服務內的 thread,如圖 ![](https://i.imgur.com/nHE3sOx.png) 2. 遵循以上的發問規範以便助教查看問題,不可直接貼上網址而沒有說明文字或者只提供截圖 3. 助教會依照 Slack 上的順序回覆問題 4. 以下問題區塊只能由助教自行增加 5. 助教會將回覆寫在下方問題區塊 ## 問題 1. **Jordan_Tseng**: 老師、助教、同學好,我想問結合 Bootstrap 的部分,我的購物車是用 Modal,按下結帳就會用 rout-link 跳到,view 裡面的 check 結帳頁面,但是只用 .hide() 只關起來彈跳視窗,關不起來背景。想知道這個問題出在哪? > 助教回覆: > 同學在打開 Modal 時是使用 data-bs-target 來開啟,但同時在 Cart.vue 又用了 new 來建立一個 Modal 實體,導致 Modal 打開時多建立了一個 modal-backdrop。 因此關閉 Modal 時,只有關掉一個 modal-backdrop 哩。 建議同學可以將 openModal 的行為統一改用 this.modal.show(); 修改後,在前台頁面的購物車,就可以用 emitter 傳事件到 Cart 去呼叫打開 Modal 的方法。 --- 2. **圈圈**: 助教不好意思,我是從 [昨天助教服務](https://hackmd.io/@hexschool/BygqmGbO_/https%3A%2F%2Fhackmd.io%2FCr71_6iVR5e_M0xbeNmH1Q) 那邊過來留言的。 昨天 ryder 助教有協助我解決報錯「Unexpected mutation of "tempProduct" prop」的問題,照他說的在ProductAdmin.vue 中的 <product-edit-modal> 補上 tempProduct 這個 props ,存檔也正確運行未報錯。 但剛剛將 ProductEditModal.vue 本來註解起來的 addImgs 和 deleteImgs function 打開,又再度報錯。 ctrl+c 中斷終端機,重新 npm run serve ,又可正常運行,但發現下方有多紅色毛毛蟲, vs code 的問題也還是有出現「Unexpected mutation of "tempProduct" prop」 這是我的 [github](https://github.com/vvvvvvii/vue-homework/tree/main/week06) 希望能再麻煩助教幫我看一下。 > 助教回覆: 因為 props 是單向數據流的關係,子元件不能修改外層的內容。如果外層被子元件修改的話,就會跳出錯誤哩。 這邊建議同學可以先在元件內的 data 新增一個屬性,例如:newProduct,並將外層的資料拷貝到 newProduct。而 Modal 內呈現的資料會是由 newProduct 提供。當點擊確認按鈕後,才會執行 $emit 來修改產品資料。 小提醒:ProductAdmin.vue 第 123 行的 :tempProduct 要改為 :temp-product --- 3. **陳sam**: 老師、助教、同學好,目前上傳 [Github](https://github.com/highdanny11/week6-vue-cli) 但是我 dist/index 無法抓到路徑,我看影片著弄但是一片的其中一段,我的專案裡面沒有這個檔案。 > 助教回覆: 因為 vue cli 版本不同的關係,所以專案的內容會跟影片不太一樣哩。 目前同學使用的是 4.5.13 的版本,在這個版本,路徑的設定會放在 vue.config.js 這個檔案裡。可以參考這篇說明:[配置参考](https://cli.vuejs.org/zh/config/#%E5%85%A8%E5%B1%80-cli-%E9%85%8D%E7%BD%AE) 影片中的 assetsPublicPath 對應的就是此檔案中的 publicPath 屬性,可以試著修改看看~ --- 4. **圈圈**: 助教好,關於單向數據流,物件不是會有物件傳參考值嗎?我以為這樣除非直接改變參考,不然不會有問題? > 助教回覆: 這邊同學的確沒有直接修改產品的資料,而是修改 tempProduct 的內容,但是 tempProduct 是屬於外層的資料,因此在元件內針對 tempProduct 調整的話,就是直接修改外層的資料哦 --- 5. **Stacey Huang**: 老師助教同學們好,有些套件會針對 Vue 來客製化,像是 vue-axios,因此,想請教一下,安裝外部套件時,會安裝哪種版本的套件呢?謝謝! > 助教回覆: 通常都會安裝最新版本哦,如果沒有特別打版本號,安裝時也都會是最新的版本~ --- 6. **蔡皓全**: 老師助教同學好,這是我 [程式](https://github.com/DavidTsai-whole/5) 1.想請問為甚麼我在 all.js 檔加上 127~143 行後資料就讀取不到了(如圖) 2.另外我的購物車列表裡面的數量 / 單位的 input 欄位無法調整數量不知道哪裡有問題 謝謝! > 助教回覆: >1. 因為同學在 all.js 裡只有載入 creatApp,沒有將 Vue 載入完全。 而 Vee Validate 也無法透過 esm 的方式載入。建議同學可以改用 CDN 的方式載入 Vue,all.js 裡則改為 Vue.creatApp 撰寫 小提醒:在 HTML 裡,all.js 建議放在最後載入 >2. 目前調整數量時沒有觸發修改數量的事件哦,需要再用 v-on 綁定 updateCart(item) 哩 --- 7. **Jordan_Tseng**: 老師助教同學好,這是我的 [Code](https://github.com/Jordan-TTC-Design/vue-2021-hw6),這是後台 productList 檔案,子元件動作我記得可以用小老鼠傳,但是我用小老鼠就沒效,只能用 v-on:。好奇怪~是我 npm 有誤嗎 > 助教回覆: 目前這邊修改後,測試是沒有問題的,建議同學可以將有錯誤的程式碼傳上來,這樣我們會比較好檢視~ 如果同學嘗試後還是有一樣的狀況,可以將 deltetProduct 改為小寫試試看: @deltet-product="deleteProduct" --- (這邊只能由助教編輯,問題請到 thread 上詢問)