vue.js - Vue 3 - Composition API - 如何使用模板中另一个文件的可重用代码?
问题描述
我在 dateTime.js 中创建了一个可重用的代码:
import { ref, computed, watch } from '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
}
}
来自 dateTime.js 的代码在 Table.vue 中被调用:
问题:我怎样才能让它工作?我想{{ showDateTime(scope.row[itemIn.field]) }}
在模板中使用。在我看来,它最终应该触发showDateTime
里面的功能dateTime.js
我做错了什么?错误代码:Uncaught (in promise) TypeError: Object(...) is not a function
指的是const { showDateTime } = useDateTime();
<template v-else-if="itemIn.type == 'dateTime'">
{{ showDateTime(scope.row[itemIn.field]) }}
</template>
<script>
import { ref, computed } from '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>
解决方案
作为您export default
的useDateTime
钩子,您必须在没有以下内容的情况下导入它{ }
:
import useDateTime from '@/composables/dateTime';
推荐阅读
- javascript - Javascript减少以产生总成本不起作用
- wildcard - Excel VBA 值通配符不返回查找粗体函数的结果
- reactjs - TypeError:无法在渲染视图中读取 null 的属性“投票”
- sql - 如何在此 SQL 查询中获得补码?
- c++ - 不抛出 std::out_of_range 异常
- r - 更改 r 中聚合函数的输出
- python-3.x - Opencv - 检测轮廓边
- python - 转换字符串“AM”或“PM”,然后添加到没有日期的时间
- pivot - 为什么我在画面的数据透视字段值列中得到空值和零?
- python - Discord channel.edit(position=2) 仍然排在首位