我对react-redux有疑问。组件必须在完成数据获取后呈现。当前代码始终返回{}
。我该如何解决这个问题?
function Category(props) {
const [categories, setCategories] = useState([]);
props.dispatch(categoryActions.fetch());
useEffect( () => {
setCategories(props.categories)
}, [props]);
return (
<Container className={classes.root}>
.....
</Container>
);
}
const mapStateToProps = state => ({
categories: state.categories,
});
function mapDispatchToProps(dispatch) {
return {
dispatch,
};
}
export default connect(mapStateToProps, mapDispatchToProps)(Category)
首先,我有一些问题:
const [categories, setCategories] = useState([]);
是做什么的?categories
将Category
作为props提供给Connect
组件。useState
挂钩用于定义和控制内部状态。从技术上讲,这没有冲突,因为您可以分别将它们称为props.categories
和categories
,但可能会造成混淆。
您想在组件中分派哪些动作?mapDispatchToProps
看起来什么也没做。看看他们的official example。