Ответы пользователя по тегу React
  • Как в state записать строку с html тегами?

    @sakhnyuk
    HTML можно воткнуть через пропсу dangerouslySetInnerHTML

    <div dangerouslySetInnerHTML={{__html: stringHtml}} />


    Но с этим стоит быть осторожней. Почитать можно тут
    Ответ написан
    Комментировать
  • Авторизация - где инициализировать?

    @sakhnyuk
    При загрузке приложения или при перезагрузки страницы, состояние приложения уже не знает про то, что мы авторизованы.

    Почему? Если тебе сервер отдает токен при авторизации, то и сохраняй его в куках.
    Далее, если адрес сервера совпадает с адресом веб страницы, то браузер автоматически будет отправлять куки в каждом запросе, т.е. любой твой запрос на сервер будет проходить проверку авторизованности и никакой логики тебе писать не придется.

    При перезагрузке страницы, если данные профиля не пришли по причине того, что ты не авторизован, то отправляй пользователя на страницу логина.

    Я, наверное, создал бы ячейку в localStorage и записал бы туда данные пользователя.
    При загрузке, если ячейка имеется, то временно мы в состоянии приложения будет авторизованы, в то же время, мы отправим запрос на сервер за пользовательскими данными.

    Нет смысла использовать localStorage и тебе показывать нечего пользователю при наличии этой ячейки. Делай запрос, а сервер тебе вернет или не вернет данные. Все просто.
    Ответ написан
  • Как добавить скролл элементу React?

    @sakhnyuk
    Добавь в зависимости эффекта loading и опускайся вниз на высоту скрола.
    Убедить, что chat.messages бывает falsy (если это пустой массив, то проверяй как chat.messages.length).

    useEffect(() => {
            if (!loading && chat.messages && chat.messages.length) {
                chatRef.current.scrollTop = chatRef.current.scrollHeight
            };
        }, [chat, loading])
    Ответ написан
    Комментировать