php - Laravel livewire 实时验证故障,移动连接速度慢
问题描述
在尝试实现https://laravel-livewire.com/docs/2.x/input-validation - Real-time Validation 时,我注意到了一个问题。假设我们有 3 个带有实时验证的输入,如果我在第一个输入中输入一些值并单击选项卡转到下一个输入,我再次输入该值并转到 3 个输入,第二个和/或第三个输入会出现故障,因为有 3 个请求(如果您使用https://laravel-livewire.com/docs/2.x/properties#lazy-updating)或者如果您不使用它甚至更多请求。因此,来自第二个和/或第三个输入的值会消失,直到所有请求都到达服务器。这可能是正常互联网连接的通知,但在互联网速度较慢的情况下更为明显。
重现步骤:
- 使用此内容创建一个 livewire 组件
namespace App\Http\Livewire;
use Livewire\Component;
class ShowPosts extends Component
{
protected $rules = [
'field1' => 'required',
'field2' => 'required',
'field3' => 'required',
];
public $field1;
public $field2;
public $field3;
public function updated($propertyName)
{
$this->validateOnly($propertyName, $this->rules);
}
public function render()
{
return view('livewire.show-posts');
}
}
- 而这个观点
<div>
<form wire:submit.prevent="submit">
<div class="form-group mb-3 col-12">
<input class="form-control" type="text" wire:model="field1">
</div>
<div class="form-group mb-3 col-12">
<input class="form-control" type="text" wire:model="field2">
</div>
<div class="form-group mb-3 col-12">
<input class="form-control" type="text" wire:model="field3">
</div>
</form>
</div>
- 使用 @livewire('show-posts') 将其包含在刀片视图中
- 在 chrome 开发工具中,转到网络->在线下拉菜单->选择慢速 3g 连接
- 尝试为每个输入输入值并使用选项卡转到下一个,您会注意到上一个输入的值消失或更改为修改前的最后一个值
可以做些什么来避免输入值的消失/更改?
解决方案
推荐阅读
- html - 上下箭头,如何优化 CSS?
- .net - 在 PowerShell 类中使用外部代码
- mysql - 使用 SELECT - JOIN 从同一个表中获取两个值
- wagtail - 如何在 Wagtail 默认管理页面中添加列表过滤器和搜索字段
- c# - CSharp 无法从 datagridview 检索正确的数据
- sql - 如何使用周数和年份查找上一行
- cmake - 柯南 CMake 和 Embarcadero 集成
- node.js - React Native npm start 卡在 Starting Packager
- php - Gestion包ftp
- python - 如何在python中的两个特殊字符之间查找数据的多个实例