1 回答
TA贡献1873条经验 获得超9个赞
我认为直接对朋友进行排序会更好。useEffect 和 state 是不必要的。为了保持这种优化,你应该使用useMemo,但你需要确保props.friendsList在每次渲染时都不会改变:
const Friends: React.FC<FriendsProps> = props => {
const sortedFriends = React.useMemo(
() =>
props.friendsList.sort((friendA, friendB) => {
return friendA.online === friendB.online ? 0 : friendA.online ? -1 : 1;
}),
[props.friendsList]
);
console.log({sortedFriends});
return (
<div className='friends-list'>
{/* now map over your sortedFriends array */}
{sortedFriends.map((friendInfo, id) => {
// add a key when you're mapping over an array
return <h1 key={id}>{friendInfo.firstName}</h1>;
})}
</div>
);
};
添加回答
举报