【发布时间】:2021-04-21 04:32:53
【问题描述】:
我想在 redux 中选择整个切片,如下所示:
interface AuthState {
user?: User;
shouldShowLogin: boolean;
}
export const authSlice = createSlice({
name: 'auth',
initialState,
reducers: {
setUser: ...,
showLogin: ...,
hideLogin: ...,
},
});
export const useAuth = () => useSelector((state) => state.auth);
所以我可以在组件中执行类似const { user, shouldShowLogin } = useAuth(); 的操作。这在大多数情况下更方便,但我不确定这是否是不好的做法/效率低下。
我想为调度做类似的事情(即抽象掉 useDispatch())。也许像const setUserWithDispatch = (info) => useDispatch()(info); 这样我可以在我的组件中简单地执行setUserWithDispatch(userInfo),而不必执行useDispatch() 然后dispatch(setUser(userInfo))。
理想情况下,我想做const { user, shouldShowLogin, setUser, showLogin, hideLogin } = useAuth();,但我不知道该怎么做。同样,这是不好的做法/效率低下吗?为什么 redux 不自动配置这个?
【问题讨论】:
标签: reactjs redux react-redux react-hooks