Php Livewire在尝试对…;成分
我遇到以下错误,对此我有点不知所措: Livewire在尝试对… 组成部分。确保Livewire组件的[name,id,data] 请求之间没有被篡改 情况如下:LiveWire2.x、Laravel7.x、ComponentController从3个MySQL存储过程中获取数据并进行处理。组件刀片是带有foreach循环的非常基本的刀片。我使用wire:init特性,这样组件就不会阻塞页面加载。它包含一个自定义的分页。切换到第二页数据时,会发生此错误。它在LiveWire1.x上时没有出错 有人知道如何解决这个问题吗?这个错误本身对我没有多大意义。需要其他信息吗Php Livewire在尝试对…;成分,php,laravel,laravel-livewire,Php,Laravel,Laravel Livewire,我遇到以下错误,对此我有点不知所措: Livewire在尝试对… 组成部分。确保Livewire组件的[name,id,data] 请求之间没有被篡改 情况如下:LiveWire2.x、Laravel7.x、ComponentController从3个MySQL存储过程中获取数据并进行处理。组件刀片是带有foreach循环的非常基本的刀片。我使用wire:init特性,这样组件就不会阻塞页面加载。它包含一个自定义的分页。切换到第二页数据时,会发生此错误。它在LiveWire1.x上时没有出错 有
提前感谢您,感谢您的帮助 在我的案例中,解决方案是保护公共财产并手动将其传递给刀片服务器,因此它被排除在Livewire的引擎盖下自动处理之外。因此我得到了相同的错误,这一个:
Livewire encountered corrupt data when trying to hydrate the [component] component. Ensure that the [name, id, data] of the Livewire component wasn't tampered with between requests.
在尝试了公认的答案并阅读了Livewire的Github之后,我开始尝试以不同的方式向视图传递数据。我在这里分享它是为了帮助其他人解决同样的用例问题
我发现了下面的变化,我之前通过的一个url,我只是在视图中看到了它,使它消失了。发件人:
//类
类MyComponent扩展组件
{
公营店铺$Shop;
公共广播$Address;
公开行动;
//规则等
公共功能支架(车间$Shop)
{
如果($shop->address()->exists()){
$this->address=$shop->address;
$this->form_action=route('merchant.shop.address.update');
}否则{
$this->address=地址::make();
$this->form_action=route('address.store');
}
}
//看法
@csrf
致:
//类
类MyComponent扩展组件
{
公营店铺$Shop;
公共广播$Address;
//规则等
公共功能支架(车间$Shop)
{
$this->address=$shop->address()->exists()?$shop->address:address::make();
}
//看法
在我的例子中,我有几个公共变量,并不是所有的都是从父视图传入的。在阅读了Markus的答案后,我去把mount
方法添加到我的livewire类中,并传入了我从父视图继承的变量,并且成功了。我使用的是livewire 2.3
这是一个错误
class MyView extends Component
{
public $fromParent, $local;
public function render()
{
return view('livewire.my-view');
}
}
添加挂载修复了它
class MyView extends Component
{
public $fromParent, $localVariable1, localVariable2;
public function mount($fromParent)
{
$this->fromParent = $fromParent;
}
public function render()
{
return view('livewire.my-view');
}
}
我通过将livewire脚本@livewireScripts放在页面标题中解决了这个问题
<head>
<meta charset="utf-8" />
@livewireStyles
@livewireScripts
</head>
@livewireStyles
@LiveWireScript
Best answer!Livewire在用不同的值对同一属性进行重新水化时仍然存在问题。例如,如果您有一个集合,然后您将更改为一个GROUP集合。谢谢Markus。这个答案救了我的命:)谢谢。@EricLagarda您应该添加此注释作为答案。它解决了我的问题,是一个完全有效的答案哦,我!