我创建一个页面,在这里你可以看到人民的配置文件及其所有项目,其中有pathname="https://stackoverflow.com/users/{their id}"
以及它可以带你到你的个人资料菜单数据。但我的问题是,当你去一个人的个人资料页,然后到另一个时,路径变化,但数据不会呈现它只会改变路径和数据保持不变。为了呈现数据,您必须刷新页面,然后显示新用户数据。我将如何得到它,所以你就不必刷新页面,所以像他们点击自己想去的路径更改的用户,并没有呈现在页面的新数据刷新?此外,有事时,你刷新页面时的用户配置文件,它应该返回用户的电子邮件地址,它当您第一次访问该页面,但是当你刷新页面,它返回一个错误,说它能”找到电子邮件。阵营 - 路线有相同的路径,但不同的参数改变更新
下面是菜单部分(链接到我的个人资料),代码:
import { Meteor } from "meteor/meteor"
import React from "react";
import { withRouter, Link } from "react-router-dom";
import { SubjectRoutes } from "./subjectRoutes/subjectRoutes";
import AddNote from "./AddNote";
class Menu extends React.Component{
render(){
return(
<div>
<div className="scroll"></div>
<div className="menu">
<h1>Menu</h1>
<p><Link to="/">Home</Link></p>
<Link to="/searchNotes">Notes</Link>
<p><Link to="/addNote">Add a Note</Link></p>
<p><Link to={`/users/${Meteor.userId()}`} >My Profile</Link></p>
</div>
</div>
)
}
}
export default withRouter(Menu)
userProfile.js:
import { Meteor } from "meteor/meteor";
import React from "react";
import { withRouter } from "react-router-dom";
import { Tracker } from "meteor/tracker";
import Menu from "./Menu";
import RenderNotesByUserId from "./renderNotesByUserId"
class userProfile extends React.Component{
constructor(props){
super(props);
this.state = {
email: ""
};
}
logoutUser(e){
e.preventDefault()
Accounts.logout(() => {
this.props.history.push("/login");
});
}
componentWillMount() {
Meteor.subscribe('user');
Meteor.subscribe('users');
this.tracker = Tracker.autorun(() => {
const user = Meteor.users.findOne(this.props.match.params.userId)
this.setState({email: user.emails[0].address})
});
}
render(){
return(
<div>
<Menu />
<button onClick={this.logoutUser.bind(this)}>Logout</button>
<h1>{this.state.email}</h1>
<RenderNotesByUserId filter={this.props.match.params.userId}/>
</div>
)
}
}
export default withRouter(userProfile);
对不起,使这个问题这么久,它只是一个很奇怪的问题我有我似乎无法找到任何网上答案。
将在解决这两个问题? –
这解决了我的问题! – Ansjovis86