I have the following error which I am familiar with :
However this time I don't understand why it's here.
Here is my code:
Chat.js
...
{
chats.map(chat => (
<div key={chat._id} id={chat._id}> // <--- line 200
<input
checked={
chat._id === selectedChat?._id
}
id="selectedChat"
name="selectedChat"
onChange={e => handleSelectChat(e)}
type="radio"
value={chat._id}
/>
<label htmlFor="selectedChat">
{chat._id}
</label>
<button
onClick={e => handleDeleteChat(e)}
type="submit"
>
X
</button>
<br />
</div>
))
}
The chat._id exists and work as intended when I inspect the html:

Note: The screenshot above shows the totality of the ids (2).
CodePudding user response:
{chats.map((chat, idx) => (
<div key={idx} id={chat._id}>
<input
checked={chat._id === selectedChat?._id}
id="selectedChat"
name="selectedChat"
onChange={(e) => handleSelectChat(e)}
type="radio"
value={chat._id}
/>
<label htmlFor="selectedChat">{chat._id}</label>
<button onClick={(e) => handleDeleteChat(e)} type="submit">
X
</button>
<br />
</div>
))}
Try this, should fix it.
CodePudding user response:
I have an other .map() in the page which had an incorrect key (replacing msg._id with msg.id fixed it).
The .map() of the messages is not nested in the other .map() that was pointed by the error logs at line 200, which was confusing and made it much harder to find the origin of the problem.
{chats.map((chat, index) => (
<div key={index} id={index}> // <<< Logged error (line 200)
...
</div>
))}
<div style={{background: "lightblue",maxHeight: "250px",overflow: "auto",}}>
{
...
selectedChat.messages.map(msg => (
<div key={msg._id} ref={scrollRef}> // <<< Actual error
...
</div>
))
}
</div>

