добро пожаловать в переполнение стека.
Сначала запомните, что массивы сохраняются по ссылке в JavaScript. Поэтому, если вы измените какой-либо массив с помощью методов pu sh () или pop (), ссылка на этот массив не изменится, и React не сможет различить guish любое изменение в вашем массиве (для повторного рендеринга вашего компонент).
let a = [2];
let b = a;
b.push(4);
a == b; //a is [2] and b is [2,4] but the result is true.
Вы можете использовать этот подход в качестве решения этой проблемы:
let listResult = [...oldListResult, newObj]; // ES6 spread operator
Также рассмотрите для рендеринга элементов массива, вам нужно использовать ключ prop, поэтому React может правильно визуализировать ваши компоненты. больше информации можно найти здесь .