mr.dehghani
3 سال پیش توسط mr.dehghani مطرح شد
2 پاسخ

مشکل بروز نشدن متغیر در کامپوننت ها داخلی Livewire

سلام ..
یه نگاهی به مثال زیر بندازید:

showPost.blade.php:

<div>
    <livewire:content-box :content="$post"/>

    <button wire:click="nextPost" >Next Post >></button>
</div>

و
content-box.blade.php :

<div>
    <h1>{{ $content->title }}</h1>
    <p>{{ $content->content }}</p>
</div>

تا اینجا کامل مشخصه که قراره چه اتفاقی بیوفته ... : اول اطلاعات مطلب مورد نطر از طریق showPost دریافت و به contentBox پاس داده میشه و همه چیز اوکی..

خب حالا من میخوام از طریق دکمه ای که قرار دادم و صدا زدن متد nextPost اطلاعات مطلب بعدی از طریق الاکونت دریافت بشه :

showPost.php :

class ShowPost extends Component
{
    public Post $post;

    public function render()
    {

        return view('livewire.show-post');
    }
public function nextPost()   
    {
        $id = $this->post->id;
        $nextPost = Post::where('id', '>', $id)->first();
        $this->post = $nextPost;
    }

...

ولی اتفاقی نمی افتد و کامپوننت contentBox هیچ ری اکشنی ندارد .... کسی به این مشکل خورده؟؟؟!

اینم بگم که نمیخوام از ایونت ها استفاده کنم برای این کار ...
نسخه لاراول هم قبلا ۷ بوده که به ۸ آپدیتش کردم.


ثبت پرسش جدید
mr.dehghani
@mrtdeh 3 سال پیش آپدیت شد
1

ممنون از همه خودم جوابشو پیدا کردم .
یادتون باشه هرجا کامپوننتی رو صدا زدید که نیاز به بروز شدن با رویداد های مختلف داشت ، پراپرتی key رو هم مقدار دهی کنید:


 <livewire:content-box :post="$post" :key="$post->id"/>

محمدسجاد دباغ
تخصص : برنامه نویس لاراول
@mdabbagh 3 سال پیش مطرح شد
0

@mrtdeh

سلام منم دقیقا چنین مشکلی دارم و key هم ست کردم اما مشکل برطرف نشد.
لطفا بیشتر راهنمایی کن.
متشکرم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام