一点背景:
我正在尝试将带有 redux 组件的类转换为 hooks 组件(Bosses 订单),在此过程中我阅读了一种将 mapStateToProps
转换为 useSelector
的方法,所以我想试一试,但我最近遇到了问题
const favValues = useSelector(favourites => favourites.favValues);
相同的代码,以防写不清楚。
因为它返回 undefined。
我想真正的问题是我如何改造这个
function mapStateToProps({ queryFilter, favourites }) {
return {
queryFilter : queryFilter,
//Favourites:
favValues : favourites.favValues,
defaultGroup : favourites.defaultGroup,
initialValues : favourites.initialValues,
favouritesList : favourites.favouritesList,
loadingFavValues : favourites.loadingFavValues,
applyingFavValues : favourites.applyingFavValues,
}
}
到useSelector
。
任何帮助或参考书目将不胜感激
答案 0 :(得分:2)
所以 mapStateToProps
有 state
作为参数。
通常我是这样写的:
function mapStateToProps (state) {
return {
favValues: state.favorites.favValues,
// etc..
}
}
你刚刚解构了它,但这里 state = { queryFilter, favorites}
。
使用 useSelector
,它还在回调中接收状态,因此您的钩子应如下所示:
const favorites = useSelector(state => state.favorites.favValues);
或者我假设你可以再次解构那个状态,看起来像这样:
const favorites = useSelector(({favorites})=> favorites.favValues);