【发布时间】:2019-10-29 14:20:13
【问题描述】:
我需要能够过滤掉一些用户的全局变量 users。使用作为值传递的反应挂钩会导致多次重新渲染页面。哪种解决方案更好,为什么?
export const UsersProvider = props => {
const [user, setUser] = useState({
isLogged: false
});
return (
<UsersContext.Provider value={[filteredUsers, setFilteredUsers]}>
{props.children}
</UsersContext.Provider>
);
};
或
class UserProvider extends React.Component {
constructor(props) {
super(props);
this.setUser = () => {
this.setState(state => {
return {user: "true"};
});
console.log(this.state.user);
};
// State also contains the updater function so it will
// be passed down into the context provider
this.state = {
user: false,
setUser: this.setUser
};
}
render() {
return (
<UserContext.Provider value={this.state}>
{this.props.children}
</UserContext.Provider>
);
}
}
【问题讨论】:
标签: javascript reactjs react-hooks react-context