livewire ไม่อัพเดตตัวแปรหลังจาก xhr

คำอธิบาย: การเชื่อมโยงข้อมูลแบบ 2 ทางไม่ทำงาน ค่าของตัวแปรไม่อัปเดต

ขั้นตอนที่แน่นอนในการทำซ้ำ

  • ทำความสะอาดการติดตั้ง laravel

  • ติดตั้งไลฟ์ไวร์

  • livewire: ทำการทดสอบ

ข้อมูลโค้ดแบบแยกส่วนและคัดลอกและวางได้

  • livewire/Test.php
    <?php
    
    namespace App\Http\Livewire;
    
    use Livewire\Component;
    
    class Test extends Component
    {
        public $text;
    
        public function render()
        {
            return view('livewire.test');
        }
    }
  • livewire/test.blade.php
    <input type="text" wire:model="text">
    {{$text}}
  • ยินดีต้อนรับ blade.php
    <!DOCTYPE html>
    <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
        <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1">
    
            <title>Laravel</title>
    
            <!-- Fonts -->
            <link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">
            <livewire:styles />
            <style>
                body {
                    font-family: 'Nunito';
                }
            </style>
        </head>
        <body class="antialiased">
            <livewire:test/>
            <livewire:scripts />
        </body>
    </html>
  • ขอเพย์โหลด
    {fingerprint: {id: "p2OSso56TqMjMT4XN4Oo", name: "test", locale: "en"},…}
       fingerprint: {id: "p2OSso56TqMjMT4XN4Oo", name: "test", locale: "en"}
          id: "p2OSso56TqMjMT4XN4Oo"
          locale: "en"
          name: "test"
       serverMemo: {children: [], errors: [], htmlHash: "b6eb143a", data: {text: "te"}, dataMeta: [],…}
          checksum: "1949b7cded0c349a39cb3f8d9d36a92bd88d5c3a1b676544851ddd229d157c4c"
          children: []
          data: {text: "te"}
             text: "te"
          dataMeta: []
          errors: []
          htmlHash: "b6eb143a"
       updates: [{type: "syncInput", payload: {name: "text", value: "test"}}]
          0: {type: "syncInput", payload: {name: "text", value: "test"}}
          payload: {name: "text", value: "test"}
             name: "text"
             value: "test"
             type: "syncInput"

บริบท

  • เวอร์ชันไลฟ์ไวร์: 2.2
  • เวอร์ชัน Laravel: 8.10
  • เบราว์เซอร์: [Edge, Chrome, Opera]

person Radu Adrian    schedule 15.10.2020    source แหล่งที่มา
comment
คุณได้รับข้อผิดพลาดอะไร?   -  person Kamlesh Paul    schedule 15.10.2020
comment
ไม่มีข้อผิดพลาดปรากฏขึ้น...   -  person Radu Adrian    schedule 15.10.2020
comment
สิ่งนี้ตอบคำถามของคุณหรือไม่? ส่วนประกอบ Laravel Livewire ไม่รีเฟรช/โหลดซ้ำโดยอัตโนมัติหลังจากรีเฟรช   -  person Qirel    schedule 15.10.2020
comment
คุณต้องมีองค์ประกอบรากเดียวในเบลดของส่วนประกอบของคุณ ตอนนี้คุณมีสองหนึ่งข้อความและหนึ่งอินพุต ล้อมไว้ใน <div>   -  person Qirel    schedule 15.10.2020


คำตอบ (1)


ดังที่ Quirel เขียนไว้แล้ว test.blade.php ของคุณต้องมีองค์ประกอบรูทเพียงองค์ประกอบเดียวเช่นนี้

<div>
    <input type="text" wire:model="text">
    {{$text}}
</div>
person codedge    schedule 01.02.2021