useState挂钩很棒。我主要使用useState挂钩初始化某些状态,并且还将函数传递给子组件以更改状态。但是,我意识到我开始在父页面组件中使用太多useState挂钩。这看起来和感觉上都是错误的,因为我开始在父页面组件中使用大约6-10个useState挂钩。
如果不显示代码,是否有更好的方法呢?也许是更好的做法,或者是重构的更好方法。
谢谢
答案 0 :(得分:2)
每当您遇到这样的问题时,您应该首先查看是否可以将您的组件拆分为多个较小的组件。但是,在某些情况下,这不是一种选择。在这些情况下,我会建议使用 useReducer。
// before
const {cache, setCache } = useState({});
const {posts, setPosts } = useState({});
const {loading, setLoading } = useState(false);
// Would become after refactor
const initialState = {
cache: {},
posts:{},
loading: false
}
const [state, dispatch] = useReducer(reducer, initialState);