Задать вопрос
gikami
@gikami
web программист

Почему не обновляется массив второй раз при получении сокетов?

Обычный чат. При отправке сообщения с одного телефона, слушаю сокеты на другом, после получения срабатывает хук и заносится сообщение в промежуточный useState newData, который слушается во втором хуке.
При первой отправке, сообщение заносится, но при второй useEffect хоть и срабатывает, но не добавляет сообщение в общий массив сообщений. Что может быть не так?
Никаких ошибок на стороне сервера и получении данных нет.

const [data, setData] = useState([]);
const [newData, setNewData] = useState({});

useEffect(() => {
     //Функция где выводится socket.on(... и добавляется в промежуточный useState новое сообщение
      getChatOn().then((item: any) => {
        setNewData(item)
      });
}, [])

//Хук при обновлении useState добавляет новое сообщение в общий массив чата
useEffect(() => {
    setData([...data, newData])
  }, [newData])
  • Вопрос задан
  • 32 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы