Идентификатор React props не определен - PullRequest
0 голосов
/ 16 июня 2020

У меня вопрос. Я пытаюсь создать приложение чата с помощью Scaledrone, но получаю сообщение об ошибке, когда пытаюсь запустить его в браузере. Чат загружается, но когда я набираю сообщение и нажимаю ввод, я получаю сообщение об ошибке:

TypeError: Cannot read property 'id' of undefined
Messages.renderMessage
  17 | renderMessage(message, index) {
  18 |   const { member, text, time } = message;
  19 |   const { currentMember } = this.props;
> 20 |   const messageFromMe = member.id === currentMember.id;
     | ^  21 |   const className = messageFromMe ? "messages currentMember" : "messages";
  22 |   return (
  23 |     <li key={index} className={className}>

Я не уверен, что я сделал что-то не так в настройках Scaledrone в приложении. js или это какая-то ошибка реквизита.

Мой код внизу:

Буду признателен за вашу помощь. Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 июня 2020

Будьте внимательны, вы устанавливаете свойство currentUser для вызова сообщений из приложения, но читаете currentMember, которое не задано, поэтому выскакивает ошибка

currentUser={this.state.member}
0 голосов
/ 16 июня 2020

Измените это:

<Messages
    messages={this.state.messages}
    currentUser={this.state.member} // <--- you are passing currentUser
/>

// so as a result you wont get `currentMember` inside `Messages.js`

Кому:

<Messages
    messages={this.state.messages}
    currentMember ={this.state.member} // <--- should be currentMember 
/>

А также

state = {
    messages: [],
    member: {
      id : "" , // <---- here there should be some initial state value
      username: randomName(),
      color: randomColor(),
    },
 };
...