Обновление списка не вызовет повторного рендеринга в вашем компоненте. Я не уверен, откуда приходит List, но я предполагаю, что он исходит из локального состояния в родительском или, возможно, в избыточном хранилище. Внутри вашего компонента вам нужно будет вызвать функцию в родительском элементе, чтобы обновить там массив списков.
Ниже приведена версия вашего компонента, предполагающая наличие списка в вашем местном штате. Вам придется настроить код для обновления состояния в родительском или избыточном хранилище, но приведенного ниже должно быть достаточно, чтобы дать вам представление о том, что делать. Кроме того, не помещайте sh элемент в массив, поскольку он мутирует объект и не будет связываться с повторным рендерингом.
const Listing = ({list = [], addToList}) => {
return <>
{
<div id='addPerson' onClick={() => addToList({})}>Add person</div>}
{list.map((element, index) => (
<div key={index} className='listItems'>
<p>list name</p>
</div>
))}
</>
};