【问题标题】:UseSelector returns me undefinedUseSelector 返回我未定义
【发布时间】:2021-07-14 14:15:22
【问题描述】:

一点背景:

我正在尝试将带有 redux 组件的类转换为 hooks 组件(老板命令),在此过程中我读到了一种将 mapStateToProps 转换为 useSelector 的方法,所以我试图给它去吧,但我最近遇到了问题

const favValues = useSelector(favourites => favourites.favValues);

相同的代码,以防书写不清楚。

因为它返回未定义。

我想真正的问题是我如何转换它

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

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

【问题讨论】:

  • 您使用的是react-redux 包吗?
  • 在下面查看我的回答,希望对您有所帮助。如果有,请将其标记为正确答案。如果您有任何其他问题,请随时在帖子中发表评论
  • 是的,我正在使用 react-redux 包
  • 如果我使用 this.props.favValues,我仍然无法获得相同的信息
  • 在你的 reducer 中是 favValues 未定义吗?

标签: reactjs react-redux react-hooks


【解决方案1】:

如何使用 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);

【讨论】:

  • 感谢您的澄清,虽然它仍然返回未定义,但很明显我的代码写得不好
  • 如果你想粘贴你的 action 和 reducer 的代码,我们也可以看看
猜你喜欢
  • 2021-10-10
  • 1970-01-01
  • 2022-11-16
  • 2023-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 2022-07-26
相关资源
最近更新 更多