Загрузить все данные из локальной базы данных - PullRequest
0 голосов
/ 27 марта 2019

Я использую реагирующий нативный подарок (https://github.com/FaridSafi/react-native-gifted-chat) для создания интерфейса чата в моем приложении, я хочу загружать сообщения из своей базы данных.

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

    let chatData = realmDatabase.objects(DatabaseTableNames.chatTable);

    let data=[];

    for (let message of chatData ){

      data =  [{
                        _id: message.chatUniqueID,
                        text: message.msgBody,
                        createdAt: (new Date()).getTime(),
                        user: {
                           _id: message.chatUniqueID,
                           name: message.senderName
                       }
                 } ]


    }



   console.log(data)

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

   [
      {
        _id: Math.round(Math.random() * 1000000),
        text:
          "It uses the same design as React, letting you compose a rich mobile UI from declarative components https://facebook.github.io/react-native/",
        createdAt: new Date(Date.UTC(2016, 7, 31, 17, 20, 0)),
        user: {
          _id: 1,
          name: "Developer"
        },

      },

      {
        _id: Math.round(Math.random() * 1000000),
        text: "React Native lets you build mobile apps using only JavaScript",
        createdAt: new Date(Date.UTC(2016, 7, 30, 17, 20, 0)),
        sent: true,
        received: true,
        user: {
          _id: 2,
          name: "Developer"
      },

      }
    ];

1 Ответ

2 голосов
/ 27 марта 2019

Выполнение data = [{...}] в цикле for назначит последнее значение от message до data. Чтобы получить все значения, вам нужно нажать элементы в массиве data. Вы можете сделать это так:

let chatData = realmDatabase.objects(DatabaseTableNames.chatTable);

let data=[];

for (let message of chatData ){
    data.push({
        _id: message.chatUniqueID,
        text: message.msgBody,
        createdAt: (new Date()).getTime(),
        user: {
            _id: message.chatUniqueID,
            name: message.senderName
        }
    });
}

console.log(data)
...