我創建一個頁面,在這裏你可以看到人民的配置文件及其所有項目,其中有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