javascript - 如何根据路由参数从众多用户中只导入一个用户?

标签 javascript reactjs redux react-redux store

我的商店:

store={
  users: [
    {id:1},
    {id:2},
    {id:3}
  ]
}

现在,我只想根据路由参数导入一个用户,例如。

id = this.props.match.params.user_id;

问题是.. 如何在 mapStateToProps 函数从我的商店获取数据之前建立上面的 id 变量?我的 mapStateToProps:

return {
  singleUser: state.users[id]
};

返回未定义。我尝试将变量“id”放在 mapStateToProps 中,但我认为参数在它开始获取数据时尚未建立。

编辑:此外,我无法在 mapStateToProps 中建立 id 变量,因为 this.props 在组件外部未定义。我该怎么做?

最佳答案

可以用数组法find获取具有匹配 id 的对象。

return {
  singleUser: state.users.find(user => user.id === id)
};

关于javascript - 如何根据路由参数从众多用户中只导入一个用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55708723/

相关文章:

reactjs - 为什么我们在 React js 中创建下拉菜单时使用 (null) ?

javascript - 如何使用 react-redux connect 获取初始数据

angular - Ngrx:订阅时未在主题中收到当前值

javascript - 选择 onChange 事件

javascript - 在旋转图像上绘制的绘制位置错误?

javascript - 在 jQuery 中使用 .each 和 JSON 对象时,如何避免未定义的属性?

javascript - 如何在组件类中使用调度(react-redux)

JavaScript 匹配逗号分隔字符串中的多个值

javascript - 类型错误 : Cannot read property 'getIngredients' of undefined

javascript - React + Redux 组件更新后做一些事情