每当我更新user
(对象中)users
(阵列在上下文中) -它使用的所有组件users
重新呈现。
我试过的
我有一个使用上下文中的值的组件:
const DashboardCardList=()=> {
const context = useContext(StaticsContext);
const users = context.users.filter(user=>user.visible);
return !users
? <Loading/>
: (
<Container>
{users.map(user=>
<DashboardCard key={user._id} user={user}/>
)}
</Container>
);
};
我的更新功能(更新上下文状态):
const onUserUpdate=(user)=>{
const index = this.state.users.findIndex(item => item._id === user._id);
const users = [...this.state.users]
users[index] = user;
this.setState({users:users});
}
最终组件:
const DashboardCard=({user})=> {
console.log("I'm here!", user);
return ...;
}
问题
为什么它不断重新渲染?是因为上下文吗?
如何正确地写这个?