Svelte each块无法渲染Axios+SvelteKit获取的数组数据求助
排查Svelte中#each无法渲染数组的步骤
- 确认变量响应式:存储数据的变量必须用
let声明(不能用const),Svelte通过赋值触发响应式更新。如果是对数组做push/splice这类操作,要手动触发更新,比如执行items = items。 - 检查API数据结构:确保你存入数组的是可迭代的数组本身,而非嵌套在对象里的数组。比如API返回
{ data: [/* 数据列表 */] },那你需要把response.data赋值给数组,而不是整个response对象。 - 验证#each语法:检查模板循环语法是否正确,示例:
注意不要漏写闭合标签{#each yourDataArray as item} <div>{item.title}</div> {/each}{/each},也不要拼错each关键字。 - 确认数据是否存在:在组件里添加
{JSON.stringify(yourDataArray)}直接显示在页面上,或者在获取数据后执行console.log(yourDataArray),验证数组是否真的有内容。 - 处理异步加载:如果是在
onMount里调用API,确保请求完成后再给数组赋值,同时处理加载状态:{#if yourDataArray.length === 0} <p>加载中...</p> {:else} {#each yourDataArray as item} <div>{item.title}</div> {/each} {/if}
内容的提问来源于stack exchange,提问作者Sami Rherbi
相关产品推荐
相关产品推荐

