export const allFeed = { feeds: [
{
id: "1",
title:
"Shang- Chi Stays On Record pace With Nearly $35.8 Million In Second Weekend",
details: [
"Lorem ipsum dolor, sit amet consectetur adipisicing elit. Esse minima ex rem quis similique eum ratione quaerat, voluptas molestias ut repudiandae delectus voluptates. Eius esse at tenetur ab accusamus excepturi?",
],
img: "*",
upvote: "3250",
downvote: "2250",
reviews: "5414",
date: "19-07-2022",
},
{
id: "2",
title:
"Daniel Craig: post your question for actor ahead of his final Bond film",
details: [
"Lorem ipsum dolor, sit amet consectetur adipisicing elit. Esse minima ex rem quis similique eum ratione quaerat, voluptas molestias ut repudiandae delectus voluptates. Eius esse at tenetur ab accusamus excepturi?",
],
img: "*",
upvote: "2050",
downvote: "1350",
reviews: "2253",
date: "18-07-2019",
},.................
export default function Feed({ feeds }) {
const [allFeeds, setAllFeeds] = useState([]);
const sortArray = (date) => {
const allDates = {
date: allFeeds.date,
};
const sortProp = allDates[date];
const sorted = [...allFeeds].sort((a, b) => b[sortProp] - a[sortProp]);
console.log(sorted);
setAllFeeds(sorted);
};
useEffect(() => {
setAllFeeds(feeds);
}, []);
return (
<div className="feed">
<div className="up-left">
<div>
<h3>Popular</h3>
</div>
<div>
<h3 onClick={sortArray}>Recents</h3>
</div>
</div>
{allFeeds.map((feed) => (
<div key={feed.id} className="card">
<div>
<p className="feed-title">{feed.title.substring(0, 200)}...</p>
<div className="card-element">
<p className="votes">
.........................
Hello everyone. I want it to be sorted by date and rerender when clicking Recent. But I just couldn't. When I console.log I see the array as unsorted. and when I do console.log(allFeeds.date) or (allFeeds.feeds.date) I get undefined. It feels like I'm missing something very simple but I couldn't figure it out. Where am i missing? Why console.log returns undefined ? Any help?