如何更改 useState 而不重新渲染它而只重新渲染它的组件?为什么我需要是因为我有一些逻辑可以更改 Comp1 中的 useState。如果我要重新渲染 Comp1,我将不得不重新计算它的值。但是如果发生变化,我仍然想重新渲染它的组件。
编辑:更大的代码片段。
function Comp1() {
const [user, setUser] = useState({});
firebase.auth().onAuthStateChanged(function (_user) {
if (_user) {
// User is signed in.
setUser(_user);
} else {
setUser({ exists: false });
}
});
return (
<div>
<UserProvider.Provider value={{user, setUser}}>
<Comp2 />
<Comp3 />
</UserProvider.Provider>
</div>
);
}
function Comp2(props) {
const { user, setUser } = useContext(UserProvider);
return (
<div>
{user.exists}
</div>
)
}
function Comp3(props) {
const { user, setUser } = useContext(UserProvider);
return (
<div>
{user.exists}
</div>
)
}
//User Provider
import React from 'react';
const UserProvider = React.createContext();
export default UserProvider;
月关宝盒
相关分类