Чтобы правильно установить начальное состояние, вы должны передать его useState
в качестве аргумента, поэтому:
const [notifications, setNotifications] = useState([]);
Также не имеет значения, если вы установили props.notifications
где-то вне или нет, но если вы полагаетесьесли у него есть какое-то значение по умолчанию в компоненте, то вы должны установить его прямо здесь, например:
const Notifications = ({ notifications = [] }) => {
И последнее, но не менее важное, использование массива в списке зависимостей useEffect
имеет некоторыенежелательные побочные эффекты, например, если notifications
structuruly останется прежним (те же элементы, той же длины), но будет новым массивом, useEffect
пропустит кэш, так как он выполняет только поверхностное сравнение.Рассмотрите возможность использования некоторой хеш-функции вместо самого массива (например, JSON.stringify
)