Fix Logic to Refresh Students Property #208
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
After filing a student application and applying a filter, the students are not categorized correctly. See issue #154 for steps to reproduce.
Refreshing the students after updating the component fixes the issue (done in PR #179). However, after adding a new property to the component in PR #200, and updating it via wire directive triggers the update() lifecycle hook, resulting in a
refreshStudents()call, which represents an unnecessary and slow request.After investigating the original bug further, it was found that when the $students property is set to a static value in the refreshStudents() method, it is treated as a public property and no longer works as a computed property. When the component is re-hydrated, the application pivot relationship is not loaded.
See issues livewire/livewire#3487 and livewire/livewire#1272 (comment) Related to why public properties that are model instances are not serialized with the entire model (or pivot relationship) during the re-hydration process.
Livewire hydration documentation.
The proper fix is to reset the $students property using unset() in order to preserve the computed property behavior.