Ответы пользователя по тегу JavaScript
  • Не могу найти ошибку в условии, в консоли выводит 0, что делать?

    @KateSin
    в условии
    for (let elem in obj) {
    вы перебираете ключи в obj, после чего пытаетесь найти нулевой (?) элемент в ключе и проверить условие (т.е. буквально проверяете "а" === "1"). Логичней было проверять obj[elem] на соответствие условию.
    Ответ написан
    Комментировать
  • Как сохранять диалог react-chatbot-kit?

    @KateSin Автор вопроса
    Ок, сама спросила, сама же ответила, вдруг кому понадобится.

    В actionProvider.js необходимо добавить функцию saver, которая будет сохранять message при вызове в функциях, формирующих сообщения бота (при вызове передаем объект, сформированный вызовом createChatbotMessage):

    const saver = (message) => {
            if (localStorage.getItem('chat_messages')){
                console.log('SAVE BOT')
                const chat_messages = JSON.parse(localStorage.getItem('chat_messages'));
                console.log(chat_messages.history)
                chat_messages.history.push({id: message.id, message: message.message, type: message.type, loading: message.loading, widget: message.widget})
                localStorage.setItem('chat_messages', JSON.stringify(chat_messages))
            } else {
                console.log('ELSE SAVE BOT')
                var obj = {}
                obj.history = [{id: message.id, message: message.message, type: message.type, loading: message.loading, widget: message.widget}]
                localStorage.setItem('chat_messages', JSON.stringify(obj))
            }
        }


    Также прописываем в messageParser.js в функции parse сохранение сообщения пользователя:

    if (localStorage.getItem('chat_messages')){
                const chat_messages = JSON.parse(localStorage.getItem('chat_messages'));
                console.log(chat_messages.history)
                chat_messages.history.push({message: message, type: 'user', loading: false})
                localStorage.setItem('chat_messages', JSON.stringify(chat_messages))
            } else {
                var obj = {}
                obj.history = [{message: message, type: 'user', loading: false}]
                localStorage.setItem('chat_messages', JSON.stringify(obj))
            }


    в файле bot.js убираем функцию saveMessages (все равно она не срабатывает) и видоизменяем функцию loadMessages:
    const loadMessages = () => {
            if (localStorage.getItem('chat_messages')) {
                const messages = JSON.parse(localStorage.getItem('chat_messages'))
                return messages.history
            }
        }
    Ответ написан
    Комментировать