Создание личных сообщений со стеком MERN - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь создать личную функцию обмена сообщениями с пользователем, но я этого не сделал.

У меня есть UserItem и MessageItem на стороне реакции.

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

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

const MessageSchema = new Schema({
  message: {
    type: String,
    required: true
  },
  users: [
    {
      type: Schema.Types.ObjectId,
      ref: "user",
      required: true
    }
  ],
  sender: {
    type: Schema.Types.ObjectId,
    ref: "user",
    required: true
  },
  date: {
    type: Date,
    default: Date.now
  }
});

Результаты моего состояния Redux;

message: {
    messageLoading: false,
    messages: [
      {
        users: [
          {
            _id: '5e7493bb469ef63768de05db',
            name: 'John Doe'
          },
          {
            _id: '5e736959492cae35ccdd7172',
            name: 'İbrahim Karagöz'
          }
        ],
        _id: '5e79bb66ccfec91a3c852095',
        message: 'dummy',
        sender: '5e7493bb469ef63768de05db',
        date: '2020-03-24T07:48:54.839Z',
        __v: 0
      },
      {
        users: [
          {
            _id: '5e7493bb469ef63768de05db',
            name: 'John Doe'
          },
          {
            _id: '5e736959492cae35ccdd7172',
            name: 'İbrahim Karagöz'
          }
        ],
        _id: '5e79bb8eccfec91a3c852096',
        message: 'second message from john doe',
        sender: '5e7493bb469ef63768de05db',
        date: '2020-03-24T07:49:34.310Z',
        __v: 0
      },
      {
        users: [
          {
            _id: '5e7493bb469ef63768de05db',
            name: 'John Doe'
          },
          {
            _id: '5e736959492cae35ccdd7172',
            name: 'İbrahim Karagöz'
          }
        ],
        _id: '5e79bb93ccfec91a3c852097',
        message: 'last message from john doe.',
        sender: '5e7493bb469ef63768de05db',
        date: '2020-03-24T07:49:39.743Z',
        __v: 0
      },
      {
        users: [
          {
            _id: '5e78f2ba0c44502e300ec0bb',
            name: 'John Doe 2'
          },
          {
            _id: '5e736959492cae35ccdd7172',
            name: 'İbrahim Karagöz'
          }
        ],
        _id: '5e79bbadccfec91a3c852098',
        message: 'first message from john doe 2',
        sender: '5e78f2ba0c44502e300ec0bb',
        date: '2020-03-24T07:50:05.207Z',
        __v: 0
      },
      {
        users: [
          {
            _id: '5e78f2ba0c44502e300ec0bb',
            name: 'John Doe 2'
          },
          {
            _id: '5e736959492cae35ccdd7172',
            name: 'İbrahim Karagöz'
          }
        ],
        _id: '5e79bbb5ccfec91a3c852099',
        message: 'another message from john doe 2',
        sender: '5e78f2ba0c44502e300ec0bb',
        date: '2020-03-24T07:50:13.291Z',
        __v: 0
      },
      {
        users: [
          {
            _id: '5e78f2ba0c44502e300ec0bb',
            name: 'John Doe 2'
          },
          {
            _id: '5e736959492cae35ccdd7172',
            name: 'İbrahim Karagöz'
          }
        ],
        _id: '5e79bbbbccfec91a3c85209a',
        message: 'last message from john doe 2',
        sender: '5e78f2ba0c44502e300ec0bb',
        date: '2020-03-24T07:50:19.974Z',
        __v: 0
      }
    ],
    selectedMessages: [],
    messageErrors: [],
    messageSuccess: ''
  }
...