javascript - 如何根据路由参数仅导入一个用户?
问题描述
我的商店:
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)
};
推荐阅读
- matlab - MATLAB:从 3D 矩阵中提取索引以获取另一个 3D 矩阵
- mysql - mariaDB 问题。尝试使用具有多项选择输入的约束创建表
- linux - youtube-dl 仅更改转换后的视频的输出路径(--recode-video)?
- java - 为什么我的 java 代码输出错误的数字?
- powershell - 如何最大化已在 Window 中最小化的应用程序?
- python - 如何仅读取特定键值并从 python 中的多个字典执行操作?
- excel - 如何更改列表框高度属性?
- javascript - 加载自定义模型并将字段添加到销售点中的 pos.order.line - Odoo 12
- python - Python函数回调和if问题
- python - 建立一个类:building_dict() 接受 1 个位置参数,但给出了 2 个