UseSelector 返回我未定义

时间:2021-07-14 14:15:22

标签: reactjs react-redux react-hooks

一点背景:

我正在尝试将带有 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

任何帮助或参考书目将不胜感激

1 个答案:

答案 0 :(得分:2)

如何使用 mapStateToProps

所以 mapStateToPropsstate 作为参数。

通常我是这样写的:

function mapStateToProps (state) {
     return {
         favValues: state.favorites.favValues,
          // etc..
     }
}

你刚刚解构了它,但这里 state = { queryFilter, favorites}


如何使用useSelector

使用 useSelector,它还在回调中接收状态,因此您的钩子应如下所示:

const favorites = useSelector(state => state.favorites.favValues);

或者我假设你可以再次解构那个状态,看起来像这样:

const favorites = useSelector(({favorites})=> favorites.favValues);