Когда React обновляет компонент, он сравнивает предыдущее состояние компонента с новым состоянием, чтобы определить, нужно ли повторно рендерить компонент.
Однако, по умолчанию React выполняет поверхностное сравнение ссылок на объекты/массивы для определения, изменилось ли состояние. Если ссылка на объект/массив остается той же, React предполагает, что состояние не изменилось, и пропускает повторный рендер компонента.
Это означает, что если переменные "arr" и "items" имеют разные ссылки, но содержат одинаковые значения, React не обнаружит изменения и компонент не будет обновлен.
Если вам нужно, чтобы компонент обновлялся при изменении состояния "items" на "arr", вы можете использовать метод `setState` с функцией в качестве аргумента, которая будет обновлять состояние компонента.
Например:
```
this.setState(prevState => ({ items: [...arr] }));
```
Это создаст новый массив "items" на основе содержимого "arr" и приведет к обновлению компонента при каждом вызове `setState`.