lui*_*fer 0 javascript vue.js vuejs3 vue-script-setup
我正在使用 Laravel/Inertia/Vue3,我获取了用户对象,然后我想在其他函数中使用它,但它总是未定义。
\n<script setup>\n// imports...\n\nconst props = defineProps({\n // props...\n})\n\nconst user = computed(() => usePage().props.value.user);\n\nconst click = () => {\n alert(`${user.name} clicked`);\n}\n</script>\nRun Code Online (Sandbox Code Playgroud)\n如果我尝试访问userHTML v\xc3\xada 车把中的对象,它会按预期工作,但我无法在单击功能中使用它。当然,我可以const user在函数内部分配一个值usePage().props...,但这看起来很丑陋,必须有另一种方法。
当然,我对 Vue 还很陌生。
\n编辑 #####
\n当我说它看起来很丑时,我指的是这个:
\n<script setup>\n// imports...\n\nconst props = defineProps({\n // props...\n})\n\nconst user = computed(() => usePage().props.value.user);\n\nconst click = () => {\n const user = usePage().props.value.user;\n alert(`${user.name} clicked`);\n}\n</script>\nRun Code Online (Sandbox Code Playgroud)\n一定有更好更正确的方法
\ncomputed()返回 a ,因此您的点击处理程序需要通过\'sref解开该值refvalue:
<script setup>\nconst user = computed(() => usePage().props.value.user);\n\nconst click = () => {\n //alert(`${user.name} clicked`); \xe2\x9d\x8c\n alert(`${user.value.name} clicked`); \xe2\x9c\x85\n}\n</script>\nRun Code Online (Sandbox Code Playgroud)\n或者,您可以避免使用反应性变换进行展开<script setup>(即,$computed()在本例中):
<script setup>\n//const user = computed(() => usePage().props.value.user);\nconst user = $computed(() => usePage().props.value.user);\n\nconst click = () => {\n alert(`${user.name} clicked`);\n}\n</script>\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |