首頁  >  問答  >  主體

如何在Vue 3的組合API中使用來自另一個檔案的可重複使用程式碼?

<p>我在dateTime.js中建立了可重複使用的程式碼:</p> <pre class="brush:php;toolbar:false;">import { ref, computed, watch } 從 'vue'; import * as dayjs from 'dayjs'; export default function dateTime() { const newDateTimeString = ref(null); function showDateTime(data) { const dateTime = dayjs(data).format('DD-MM-YYYY') newDateTimeString.value = dateTime; } return { newDateTimeString, showDateTime } }</pre> <p><strong>在Table.vue中呼叫了dateTime.js中的程式碼:</strong></p> <p>問題:我該如何使其工作?我想在模板中使用<code>{{ showDateTime(scope.row[itemIn.field]) }}</code>。在我看來,這應該最終觸發<code>dateTime.js</code>中的<code>showDateTime</code>函數。 </p> <p>我做錯了什麼?錯誤代碼:<code>Uncaught (in promise) TypeError: Object(...) is not a function</code>,它指的是<code>const { showDateTime } = useDateTime();<code>const { showDateTime } = useDateTime();</code> ;</p> <pre class="brush:php;toolbar:false;"><template v-else-if="itemIn.type == 'dateTime'"> {{ showDateTime(scope.row[itemIn.field]) }} </template> <script> import { ref, computed } 從 'vue'; import { defineComponent } from "vue"; import { useStore } from "vuex"; import { useDateTime } from '@/composables/dateTime'; export default defineComponent({ name: "", props: { processingData: Object }, components: { Flag }, emits: ["unique", "refresh"], setup(props, {emit}) { const { showDateTime } = useDateTime(); const store = useStore() function setStatus(id, route) { const object = { id: id, route: route } return store.getters.getStatus(object); } return { getScope, setUniqueId, getClass, getWidth, navigatePagination, setStatus, setTag, showDateTime }; } }); </script></pre> <p><br /></p>
P粉323050780P粉323050780392 天前491

全部回覆(1)我來回復

  • P粉964682904

    P粉9646829042023-08-27 09:54:34

    當你使用export default匯出useDateTime hook時,你必須在匯入時不使用{ }

    import useDateTime from '@/composables/dateTime';

    回覆
    0
  • 取消回覆