各位大神有没有遇到这个问题,Livewire无法传递隐藏表单的值?

livewire和alpinejs结合使用的一段代码。input表单拿不到值

组件视图代码,一个普通的表单,livewire和alpinejs结合:

<div x-data="{
tagItems: [1,2],  //这里的值只是做个示范,在实际场景中,这里的值是动态从其他地方获取的。
}">
         <form wire:submit.prevent="save">
              <input type="hidden" :value="tagItems" wire:model="tagItems">  //这个值是x-data里面的值
              <button class="button button-primary" type="submit">提交信息</button>
         </form>
</div>

组件方法:

class PostModal extends Component
{
    public $tagItems;
    public function save()
    {
        dd($this->tagItems);
    }
}

save()里打印$this->tagItems,值是null
但是我如果将input的类型改为text,手动输入值,就可以打印出来。是什么问题呢?

乌鸦嘴新手社区 wyz.xyz 为技术新手提供服务
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
running8
最佳答案

这个问题我好像也遇到过,特别是想用js改变隐藏表单的值的时候好像不生效。只好提交的时候 $wire.set('property', value, true)

1年前 评论
讨论数量: 2
running8

这个问题我好像也遇到过,特别是想用js改变隐藏表单的值的时候好像不生效。只好提交的时候 $wire.set('property', value, true)

1年前 评论

试下初始化?

class PostModal extends Component
{
    public $tagItems;

    public function mount()
    {
        $this->tagItems = [1,2];
    }
   ···
}
不再用 value 赋值
<input type="hidden" wire:model="tagItems"> 
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!