Php Laravel Livewire-I';更新子组件列表时,我失去了位置

Php Laravel Livewire-I';更新子组件列表时,我失去了位置,php,arrays,laravel-livewire,Php,Arrays,Laravel Livewire,在学习Livewire时,我需要一些帮助。以下是场景: ComponentmainPage根据名为$missingTechs的数组呈现子组件列表。代码如下: <div id="tech-names" class="pr-5 pl-5"> @foreach ($missingTechs as $tech) <livewire:missing-tech :name="$tech" :key=&

在学习Livewire时,我需要一些帮助。以下是场景:

Component
mainPage
根据名为
$missingTechs
的数组呈现子组件列表。代码如下:

<div id="tech-names" class="pr-5 pl-5">
      @foreach ($missingTechs as $tech)
         <livewire:missing-tech :name="$tech" :key="$loop->index">
      @endforeach
</div> 
单击此按钮将向父级发送消息,以显示从用户获取一些输入的模式

public function showTechAddModal()
    {
        $this->emit('addTechInitials', $this->techName);
        // $this->techInitials = '';
        // $this->techAddModalIsVisible = true;
    }
这让我想到了这个问题。我试图从阵列中删除这个特定的技术,并让父组件动态更新子组件。如前所述,子项基于父项中名为
$missingTechs
的数组中的值列表

此模式正确呈现,输入正确保存到数据库,模式正确解除

我使用了许多技术来更新底层的
$missingTechs
数组,以删除有问题的项,每种技术都正确地更新了数组,但显示不反映新调整的数组。我目前的做法是:

array_splice($this->missingTechs, array_search($this->techName, $this->missingTechs), 1);
通过
dd()
进行回音,这似乎是可行的。但是,随后呈现的列表仍然不正确。更重要的是,livewire似乎正在失去其索引(???)

从用户的角度来看,此列表在索引0、1和2处呈现项目1、2和3。在所有情况下,删除任何项目都会有效地更新数组的值,但是数组的第三个项目会受到视觉影响(删除项目1、2或3会生成正确的数组,但项目1和2仍保留在显示的列表中)

Fwiw我甚至尝试过完全重建阵列,结果类似。我显然错过了什么

我肯定我是用一种令人困惑的方式说的。。。感谢您的帮助。我只能想象,这是为了更简单,我发现它是无论如何


感谢您的帮助。

简而言之,解决方案是使用实际数组值而不是索引作为:键。愚蠢其实很简单,但它难倒我的时间比我愿意承认的要长。
array_splice($this->missingTechs, array_search($this->techName, $this->missingTechs), 1);