【发布时间】:2021-11-04 16:06:44
【问题描述】:
我正在使用 react 构建我的第一个网络应用程序。它与多个聊天室聊天。这是我在视觉上得到的:
现在我只想在任何房间上单击“打开”,然后在右侧的白色 div 内显示该聊天室中的消息,当前显示“HI MOM”。
但这两个是不同的组件。
这是聊天室列表:
export default function ChatRoomList({param1}) {
const [chatRooms, setChatRooms] = React.useState([]);
React.useEffect(()=>{
(async () => {
var x = await getChatRoom(param1)
console.log(x)
setChatRooms(x)
})()
},[])
return (
<div className='chatRoomView'>
{chatRooms.map((chatRoom , index) => {
return (
<ul >
<li key={index}>
<table>
<tr>
<td>
ChatroomID: {chatRoom.chatIDFromTableChats}
<br></br>
Username: {chatRoom.userNameUser2}
</td>
<td>
<Button variant="contained" onClick={() => loadChatRoomFromID(chatRoom.chatIDFromTableChats)}>open</Button>
</td>
</tr>
</table>
</li>
</ul>
)
})}
</div>
);
}
function loadChatRoomFromID(ID) {
alert(`chatRoomID: ${ID}`);
}
点击按钮后,我目前只能打开一个警报,显示被点击元素的 ID。
这是第二部分:
export default function ChatMessages() {
function loadMessages(ID){
// HELP NEEDED?!
}
return <div class='mainChatView'>HI MOM</div>;
}
如您所见,有一个名为“loadMessages()”的函数,但它没有做任何事情,因为它需要传递 ID 参数,然后开始加载每个房间的消息。
从一个组件到另一个组件的连接丢失了,到目前为止,我读到的任何答案都没有让我悲惨地失败......
谁能给我一个工作代码示例并解释发生了什么?
谢谢!
【问题讨论】:
-
你可以使用 context api 或 redux 之类的东西
-
你删除了问题,所以我在这里评论:如何解除状态:codesandbox.io/s/amazing-breeze-gg4l6?file=/src/App.js(你在多个地方破坏了代码)
-
非常感谢,在输入问题时我意识到我的错误:)
标签: javascript reactjs