首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:在Svelte中未定义ctx[3]

TypeError:在Svelte中未定义ctx[3]
EN

Stack Overflow用户
提问于 2022-12-01 03:12:25
回答 1查看 17关注 0票数 0

完全迷失了为什么这是打破的。我正在开发一个自动完成类组件,它可以很好地处理一系列字符串。但是我正在将它转换为使用带有键slugname的对象数组,现在我得到了一个前所未有的类型错误。

代码语言:javascript
复制
  {#if filteredPlants.length > 0}
    <hr class="mx-4"/>
    <ul class="mx-4 my-4">
      {#each filteredPlants as plant, index}
        <li
          class={`py-1 rounded-lg ${hiLitedPlant.name === plant.name ? 'bg-black text-white' : ''}`}
          on:mouseenter={() => hiLiteIndex = index}
          on:click={() => navigate(hiLitedPlant.slug)}
          on:keydown={navigateList}
        >
          <p class="mx-2">{plant.name}</p>
        </li>
      {/each}           
    </ul>
  {/if}

过滤工作正常。如果我控制日志,它会输出预期的值,但是在拥有filteredPlants.length > 0之后,它就会开始抛出一个Uncaught (in promise) TypeError: ctx[3] is undefined。如果我从循环中删除索引变量,那么如果这有帮助的话,它将变成ctx2。我使用的是类型记录,所以如果是打字问题,我不知道为什么要编译

EN

回答 1

Stack Overflow用户

发布于 2022-12-01 04:21:16

这个错误来自于顺风类内部。访问hiLitedPlant.name会引发错误,因为在用户能够交互之前,第一次呈现它是未定义的。

代码语言:javascript
复制
let hiLiteIndex: number = -1;
$: hiLitedPlant = filteredPlants[hiLiteIndex] ?? { name: '', slug: ''};     
代码语言:javascript
复制
on:click={() => navigate(plant.slug)}

这个修好了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74636561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档