I am using React Navigation to navigate between pages. I have a Profile page that contains user info card and that user’s posts. I use Post component inside this Profile component as shown below.
And I have a link button to navigate users profile inside the Post component.
<Button className="fs30"
type="text"
onClick={() => {navigate("/Profile",{state:{profileID:post.userId}});}}
>
{post.userName}
</Button>
I also use this Post component inside Home Page and navigation is works there without any problem.
My question is the following: When I’m on Profile page and click the navigate button nothing happens. I want to refresh the Profile page with different parameters when the button clicked.(ex: different users profile). How can I do that?
Note: I am fetching the data in Profile page from WEB API using profilId state and useEffect hook:
useEffect(() => {
const response = axios.get("http://localhost:5122/GetSpesificUsersPosts", {
params: { userId: profileId },
});
response.then((res) => {
setPostList(res.data);
});
}, []);
useEffect(() => {
const response = axios.get("http://localhost:5122/GetUserInfo", {
params: { userId: profileId },
});
response.then((res) => {
setUserInfo(res.data);
});
}, []);
Advertisement
Answer
Since profileID is changing, your current code would work. All you have to do is to add it as dependency, like so:
useEffect(() => {
const response = axios.get("http://localhost:5122/GetSpesificUsersPosts", {
params: { userId: profileId },
});
response.then((res) => {
setPostList(res.data);
});
}, [profileId]);
useEffect(() => {
const response = axios.get("http://localhost:5122/GetUserInfo", {
params: { userId: profileId },
});
response.then((res) => {
setUserInfo(res.data);
});
}, [profileId]);