#reactjs #react-forwardref
Вопрос:
весь сегмент кода:
const Message= forwardRef(({ message,username}, ref)=> {
const isUser = username === message.username;
return (
<div ref={ref} className={`message ${isUser amp;amp; 'message__user'}`}>
<Card className={isUser ? "message__userCard" : "message__guestCard"}>
<CardContent >
<Typography
color="black"
variant="h5"
component="h2"
>
{message.username}:{message.message}
</Typography>
</CardContent>
</Card>
</div>
)
});
export default Message;
ошибка показывает, что часть имени пользователя в этой части не определена.
Не удается прочитать свойства неопределенного (чтение «имя пользователя»)
const isUser = username === message.username;
родителем, в котором вызывается сообщение, является
<FlipMove>
{
messages.map(({id , message}) => (
<Message key={id} username={username} message={message}/> //Message.js component,passing the text to message component
))
}
</FlipMove>
Комментарии:
1. Не могли бы вы поделиться родительским компонентом, из которого вызывается сообщение?
2. Тогда
message
естьundefined
. Есть ли у вас конкретная информация, указывающая на иное?3. нет , другой информации нет, часть имени пользователя не определена .
4. @Shatakchhi: Ну, скажем по-другому… Если у вас нет информации, указывающей, что
message
она должна иметь значение, то почему вы ожидаете, что она будет иметь значение? Ошибка довольно очевидна.message
являетсяundefined
. Так что вы не можете разыменовать его. Вам либо нужно указать значение для него при использовании этого компонента, либо вам нужно проверить, имеет ли он значение, прежде чем пытаться его использовать.