Php Laravel Livewire-I';更新子组件列表时,我失去了位置
在学习Livewire时,我需要一些帮助。以下是场景: ComponentPhp 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=&
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);