Rumah  >  Soal Jawab  >  teks badan

Memadamkan laluan dalam Inertia.js tidak boleh mencetuskan panggilan balik onSuccess().

Saya mempunyai laluan padam Inertia.js supaya apabila saya memadamkan item, ia mengubah hala semula ke halaman yang saya gunakan. Walau bagaimanapun, ini tidak memanggil fungsi onSuccess() dalam laluan musnah Inersia.

示例.vue

deleteSubmit(id) {
    this.accountsDataTable.destroy();
    Inertia.destroy(route('installers.destroy', {id: id}), {}, { 
        preserveState: true, 
        onSuccess: () => {
            this.accountsDataTable = $('#table').DataTable({
                columnDefs: [{
                    target: 1
                }]
            });
        }
    })
},

ExampleController.php

//Validate the request
//Create the installer
//Redirect back on success
return redirect()->route('installers.index')->with('success', 'Installer was successfully deleted.');

Walau bagaimanapun, jadual data tidak dicipta semula seperti yang saya mahukan. Inilah rupanya sebelum ini:

Imej yang betul

Keadaan selepas

adalah seperti berikut:

Ralat gambar

Saya cuba menukar kod pengawal kepada:

return redirect()->back()->with('success', 'Installer was successfully deleted');

Tetapi jadual data masih tidak memaparkan cara yang sepatutnya.

P粉738346380P粉738346380298 hari yang lalu446

membalas semua(1)saya akan balas

  • P粉539055526

    P粉5390555262023-12-27 00:12:17

    1: Sediakan ubah hala dalam pengawal menggunakan data mesej.

    return redirect()->back()->with([
        'messaage' => 'Installer was successfully deleted',
    ])
    

    2: HandleInertiaRequests middleware.

    public function share(Request $request)
    {
        return array_merge(parent::share($request), [
            'flash' => [
                'message' => fn () => $request->session()->get('message'),
            ],
        ]);
    }
    

    3: Dalam komponen.

    <template>
    {{ $page.props.flash.message }}
    </template>
    
    <script setup>
    import { usePage } from '@inertiajs/inertia-vue3'
    
    const message = usePage().props.value.flash.message
    </script>
    

    Dokumentasi: https://inertiajs.com/shared-data

    balas
    0
  • Batalbalas