javascript - 第二个组件无法重新加载数据
问题描述
嗨,我在使用 reactjs 重新加载父组件中的第二个组件时遇到问题。我有一些 3 文件 1 父组件 2 子组件来制作简单的聊天网站。问题是当我第二次单击聊天列表时,我的组件聊天室没有重新加载/更改数据。
这是我的 parent.js
import React, { useContext } from 'react'
import $ from 'jquery'
import Wrapper from '../components/wrapper'
import ChatList from './chat-list'
import ChatRoom from './chat-room'
export default class extends React.Component {
constructor(props) {
super(props)
this.state = {
login: 0,
user: null,
tokenChat: '',
roomChat: '',
isToken: false
}
this.clickChat = this.clickChat.bind(this)
}
componentDidMount() {
$('body').addClass('menu-position-side menu-side-left')
}
componentWillUnmount() {
$('body').removeClass('menu-position-side menu-side-left')
}
clickChat(token, room) {
let self = this
self.setState({
tokenChat: token,
roomChat: room,
isToken: true
})
}
render() {
return (
<Wrapper {...this.props} title="Dashboard" selected="dashboard" padding={false}>
{this.state.login == 1 &&
<div className="content-i">
<div className="content-box">
<div className="full-chat-w">
<div className="full-chat-i">
<div className="full-chat-left">
<div className="os-tabs-w">
<ul className="nav nav-tabs upper centered">
...
</ul>
</div>
<ChatList clickChat={this.clickChat} />
</div>
<div className="full-chat-middle">
{
this.state.isToken == false ?
null
:
<ChatRoom token={this.state.tokenChat} room={this.state.roomChat} />
}
</div>
<div className="full-chat-right">
<div className="user-intro">
<div className="avatar"><img alt="" src="/static/doctor-theme/img/avatar1.jpg" /></div>
<div className="user-intro-info">
<h5 className="user-name">John Mayers</h5>
<div className="user-sub">San Francisco, CA</div>
<div className="user-social"><a href="#"><i className="os-icon os-icon-twitter"></i></a><a href="#"><i className="os-icon os-icon-facebook"></i></a></div>
</div>
</div>
<div className="chat-info-section">
<div className="ci-header"><i className="os-icon os-icon-documents-03"></i><span>Shared Files</span></div>
<div className="ci-content">
<div className="ci-file-list">
<ul>
<li><a href="#">Annual Revenue.pdf</a></li>
<li><a href="#">Expenses.xls</a></li>
<li><a href="#">Business Plan.doc</a></li>
</ul>
</div>
</div>
</div>
<div className="chat-info-section">
<div className="ci-header"><i className="os-icon os-icon-documents-07"></i><span>Shared Photos</span></div>
<div className="ci-content">
<div className="ci-photos-list">
<img alt="" src="/static/doctor-theme/img/portfolio9.jpg" />
<img alt="" src="/static/doctor-theme/img/portfolio2.jpg" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
}
</Wrapper>
)
}
}
请帮忙谢谢。
解决方案
推荐阅读
- javascript - 如何在 php 中解析 json-in-json
- javascript - 使用媒体捕获科尔多瓦插件录制视频并上传到远程服务器问题
- c# - 将 Azure 应用服务重新启动作为指标
- regression - OLS 中的区域固定效应
- c# - 带有 TestCaseSource 的 NUnit 在 VS2019 中发现了额外的无源测试
- nlp - 如何读取或打开 qrel 格式的文件?
- javascript - AppScript 组 getUser() 权限错误
- python - 从嵌套的 python 列表中获取 n 最小值
- typescript - 是否可以在自己的扩展约束中使用泛型类型参数?
- jquery - ACF Medical 数据比较两种药物