Я предполагаю, что newItems
- это массив,
, просто сравнение их с ==
или ===
не сработает (по разным причинам это не получится)
- этоесть ли преимущество в том, чтобы не заменять this.state.items
, если оно одинаковое?
Если так важно, чтобы вы не вызывали setState
, если они одинаковые, вы можете сравнить их, зациклив массив и сравнивая каждый элемент массива
newItems.length === this.state.items.length && newItems.sort().every((value, index)=> value === this.state.items.sort()[index]);
Это предполагает, что каждый элемент в вашем массиве является string
или number
, если какой-либо из элементов является другим массивом или объектом, вы должны сделать аналогичное сравнение в каждомelement
Вы можете использовать lodash isEqual
, чтобы сделать это, я полагаю