oli*_*rbj 1 javascript office-addins vue.js office-js vuejs3
我有以下两个组件(父组件和子组件)
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Index.vue (Parent)\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 _GetShipment.vue (Child)\nRun Code Online (Sandbox Code Playgroud)\n在Index.vue我尝试使用 Office.js\ 的 getAsync 获取电子邮件正文的内容:
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Index.vue (Parent)\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 _GetShipment.vue (Child)\nRun Code Online (Sandbox Code Playgroud)\n上面检查电子邮件正文内容以查看是否存在正则表达式匹配。如果存在,它将把匹配项添加到数组中shipments。
目前,如果仅找到一个匹配项,则该匹配项将在名为 的子组件中呈现_GetShipment:
<script>\nimport Shipment from \'./_GetShipment.vue\';\nimport { ref, defineComponent } from \'vue\';\n\n\nexport default defineComponent({\n setup() {\n const shipments = ref([]);\n\n Office.context.mailbox.item.body.getAsync(\n "text",\n function (result) {\n if (result.status === Office.AsyncResultStatus.Succeeded) {\n let matches = result.value.match(/S\\w{3}\\d{8,9}/ig);\n if(matches){\n shipments.value = matches;\n }\n }\n }\n );\n\n return {\n shipments,\n }\n },\n components: {\n Shipment,\n },\n})\n</script>\n\n<template>\n <div>\n <div v-if="shipments.length === 1">\n <Shipment :id="shipments[0]" />\n </div>\n </div>\n</template>\nRun Code Online (Sandbox Code Playgroud)\n获取电子邮件正文内容工作正常,使用 获取详细信息也是如此fetch()。
但是,加载回退Suspense并未被触发。加载页面时,它是简单的空白,直到fetch完成。
为什么没有#fallback被渲染?
您错误地<Suspense>在具有async setup. 需要<Suspense>位于祖先中(即根和使用 的组件之间的任何组件async setup)。
事实上,您的组件渲染完全没有错误,这意味着您已经<Suspense>在祖先中拥有了 ,因此这里的解决方案是删除组件内的async setup,或者将 移至<Suspense>呈现后备的包装器。
| 归档时间: |
|
| 查看次数: |
1071 次 |
| 最近记录: |