У меня есть таблица клиентов, и выбранный клиент хранится в ViewState
. Проблема в том, что все строки перерисовываются, когда выбор изменяется довольно медленно. В идеале, только выбранная строка и выбранная строка будут повторно отображены, но я не узнал, как этого добиться. Моя структура идентична примеру в Пример списка контактов MobX:
{this.filteredCustomers.map(customer => {
return (
<CustomerRow
key={customer.id}
customer={customer}
viewState={this.props.store.view}
/>
)
})}
и
const CustomerRow = observer((props: CustomerRowProps) => {
const isSelected = props.viewState.isCustomerSelected(props.customer)
const rowClass = isSelected ? 'active' : ''
return (
<tr className={rowClass}>
<td>{props.customer.lastName}</td>
<td>{props.customer.firstName}</td>
</tr>
)
})
Все строки зависят от значения ViewState.selectedCustomer
с помощью метода isCustomerSelected
.
Есть ли другой способ структурировать это, что позволяет избежать повторного рендеринга всех строк?