Javascript 如何清除ReactJS组件中的状态?
我正在使用react js和firebase数据库开发一个聊天应用程序,一切正常,但当我打开一个新的人与其他人聊天之前的聊天信息时 有指向已部署应用程序的链接: 问:如何在每次调用聊天功能时清除状态,以便没有来自上一次聊天的消息 代码:Javascript 如何清除ReactJS组件中的状态?,javascript,reactjs,Javascript,Reactjs,我正在使用react js和firebase数据库开发一个聊天应用程序,一切正常,但当我打开一个新的人与其他人聊天之前的聊天信息时 有指向已部署应用程序的链接: 问:如何在每次调用聊天功能时清除状态,以便没有来自上一次聊天的消息 代码: 从“React”导入React 从'react redux'导入{connect}; 从“../store/action”导入{adding_Dummy,get_user} 从“../config/firebase”导入firebase 类Chat扩展了Rea
从“React”导入React
从'react redux'导入{connect};
从“../store/action”导入{adding_Dummy,get_user}
从“../config/firebase”导入firebase
类Chat扩展了React.Component{
构造函数(){
超级()
此.state={
聊天室用户:{},
聊天室:[],
信息:[]
}
}
聊天=(用户)=>{
这是我的国家({
聊天室用户:用户
})
让cu_user=this.props.current_user
让chat\u user=this.state.chat\u user
让merged\u uid=this.uid\u merge(cu\u user.uid,user.uid);
console.log('hammad',user.uid)
console.log('osama',cu_user.uid)
log('uid\uuuu WARS',cu\u user.uid)
console.log('merged\u uid>>>',merged\u uid)
此.get\u消息(合并的\u uid)
}
uid\U合并=(id1,id2)=>{
如果(id1{
让用户=this.props.current_用户
让chat\u user=this.state.chat\u user
让merged\u uid=this.uid\u merge(user.uid,chat\u user.uid);
firebase.database().ref('/').child(`chat/${merged\u uid}`).push({
消息:this.state.message,
name:user.name,
uid:user.uid
})
//this.state.chat.push({
//消息:this.state.message
// })
//这是我的国家({
//聊天室:this.state.chats,
//消息:“”
// })
}
获取消息=(uid)=>{
firebase.database().ref('/').child(`chat/${uid}`)。on('child_added',(message)=>{
this.state.chat.push(message.val())
这是我的国家({
聊天室:this.state.chat,
消息:“”
})
})
}
componentDidMount(){
this.props.get_user()
this.props.get_user()
}
render(){
console.log('stateChat=>',this.state)
让用户=this.props.current_用户
console.log('thistaet==>s',this.state)
console.log('asdCU',this.props.current_用户)
返回(
欢迎!{user.name}
电子邮件:{user.Email}
this.props.dum_data()}>添加虚拟对象
console.log(this.props)}>props
this.props.get_user()}>get user
{/*console.log(e.target.value)}>按钮*/}
聊天用户
{this.props.users.map((v,i)=>{
返回v.uid!==user.uid&- {v.name}this.chat(v)}>chat
})}
闲聊
{Object.keys(this.state.chat_user).长度?
{this.state.chat_user.name}
{this.state.chat.map((v,i)=>{
return- {v.message}
})}
{this.setState({message:e.target.value}}}type=“text”placeholder=“在此处输入”/>
此.send_message()}>send
:
没有用户
}
)
}
}
常量mapStateToProps=(状态)=>({
当前用户:state.current\u用户,
用户:state.users
})
const mapDispatchToProps=(调度)=>({
dum_数据:()=>调度(添加_Dummy()),
获取用户:()=>调度(获取用户()),
})
导出默认连接(MapStateTops,mapDispatchToProps)(聊天);
当用户单击名称的聊天
按钮时,需要清除消息
this.chat(v)}>chat
在chat()方法中,更新以重置处于状态的消息
this.setState({
chat_user: user,
chat: [],
message: []
})