svelte - Svelte 条件组件渲染
问题描述
我在应用程序中有一个基本的 if/else 来显示预加载器或组件。
{#if preloading}
<video />
{:else}
<svelte:component this={component} on:preload={preload}/>
{/if}
它从正确显示组件开始,当设置了预加载标志时,它会显示视频,但它会在 svelte:component 上显示它而不是替换它。
我尝试使用 {#key} 通过使用数字作为 id 并在设置预加载时增加它来强制重新渲染,但组件仍然存在。
有任何想法吗?
解决方案
尝试像在示例页面中那样做:
<script>
import video from "./somewhere.svelte"
import component from "./somewhereelse.svelte"
</script>
<svelte:component this={preloading ? video : component} on:preload={preload}/>
推荐阅读
- javascript - 使用 Fetch API,处理错误时如何访问 JSON 数据
- android - 当活动首次加载时,TransitionManager.beginDelayedTransition 没有动画
- vue.js - 更好的方法处理:“不要在突变处理程序之外改变 vuex 存储状态”错误
- javascript - Javascript将对象键移动到父对象键
- laravel - 无法使用 nginx 下载文件 laravel(失败 - 网络错误)
- couchbase - 在 Spring-data-Couchbase 中将 Document 直接保存为 id 的值
- c# - 如何使用c#代码在linux容器上执行sqlplus命令
- python - 在堆积条形图上适当定位注释
- powershell - 修剪文件名以使其少于 100 个字符
- ruby - 在 ruby 中确保只有某些方法可用