Как обновить вложенные компоненты без обновления родительскогоPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как обновить вложенные компоненты без обновления родительского

Сообщение Anonymous »

У меня есть таблица со строками моделей списка вакансий. Внутри таблицы можно отправить массовое действие в очередь. В моем родительском компоненте у меня есть массив $bulkIds, и я добавляю массив каждого отправленного массового действия. Когда задание очереди завершено, я проверяю, совпадают ли идентификаторы этого задания с сохраненными, и отправляю событие (

Код: Выделить всё

bulkActionCompleted
), если они совпадают. Это я получаю по вложенным компонентам. Я хочу обновить строки только внутри этого массива, но без обновления родительского компонента. Пользователь может отправлять другие задания очереди или переходить к другим результатам и т. д. Я не хочу мешать пользователю.
Я пробовал работать с SkipRender, но вы не можете пропустить рендеринг дочернего элемента, и как только дочерний элемент обновляется, обновляется и родительский.
В родительском html:

Код: Выделить всё

@foreach($jobListings as $index => $jobListing)
@php
$isInBulk = in_array($jobListing->id, array_merge(...$bulkIds));
@endphp





@endforeach

Дочерний компонент:

Код: Выделить всё

class Row extends Component
{
public JobListing $jobListing;
public bool $isInBulk;
public array $lastJobIds = [];

protected $listeners = [
'bulkActionCompleted',
];

public function render()
{
return view('livewire.employer.job-listings.index.parts.row');
}

public function bulkActionCompleted($jobListingIds)
{
$this->lastJobIds = $jobListingIds;
if (in_array($this->jobListing->id, $jobListingIds)) {
$this->isInBulk = false;
}
}
}
TL;DR: Я хочу обновить определенные вложенные компоненты, не обновляя родительский элемент.


Подробнее здесь: https://stackoverflow.com/questions/681 ... ing-parent
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»