javascript - ReactJs + Redux ---> 尝试调用企业名称,其中 item.business_id === BusinessId

标签 javascript arrays reactjs redux array.prototype.map

我想在本次查询中将该企业的名称与 idBusiness 等同起来 我的意思是这样。

仅供引用,这是我第一次在这里被问到,所以我也不知道如何将一些代码加粗 -_- 我想在这行问什么

链接到={/admin/business/${item.business_id}}>{businessId.business.filter(item => item._id === (item.business_id ))}

const allInquiries = useSelector(state => state.InquiryReducer);
const allBusiness = useSelector(state => state.BusinessReducer);

useEffect(() => {
  dispatch(GetAllInquiries());
  dispatch(GetAllBusiness()); }

我的问题在这里

const unReadInquiries = () => {
if (allInquiries.allInquiries !== undefined) {
  return (
    allInquiries.allInquiries.docs.filter(item => item.isRead === false).map(item =>
      <Accordion>
        <Card className="mr-3 mb-3">
          <Card.Header className="bg-info">
            <Link to={`/admin/business/${item.business_id}`}**{businessId.business.filter(item => item._id === (item.business_id))}**</Link>
          </Card.Header>
          <Accordion.Toggle as={Card.Body} eventKey={item._id}
            style={{cursor: 'pointer'}}>
            <img
              src={require('../assets/images/Screenshot from 2019-10-24 11-20-53.png')}
              alt="business-profile"
              width="30"
              height="30"
            />
            <span className="text-uppercase font-weight-bold ml-3">
              You have a new Inquiry from {item.name}
            </span>
            <Accordion.Collapse eventKey={item._id}>
              <Card
                className="mt-3" style={{cursor: 'auto'}}>
                <Card.Body>
                  <p>{item.description}</p>
                </Card.Body>
                <Card.Footer>
                  <Link to="#">
                    <Button>Read More</Button>
                  </Link>
                </Card.Footer>
              </Card>
            </Accordion.Collapse>
          </Accordion.Toggle>
        </Card>
      </Accordion>
    )
  )
}

}

谢谢马斯塔

最佳答案

过滤器方法将返回数组。使用find而不是filter

<Link to={`/admin/business/${item.business_id}`}>
  {
    businessId.business.find(
      _item => _item._id === item.business_id
    )?.name
   // If you're using Babel Optional Chaining (?.) you
   // can access like this to prevent `undefined` error 
   // else, you have to do this
   //  businessId.business.find(
   //   _item => _item._id === item.business_id
   //  ) &&
   //  businessId.business.find(
   //   _item => _item._id === item.business_id
   //  ).name
  }
</Link>

此外,您还在这里声明了两个 item 变量。我已将第二个重命名为 _item

关于javascript - ReactJs + Redux ---> 尝试调用企业名称,其中 item.business_id === BusinessId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60808320/

相关文章:

javascript - 在带有异步调度的react-native中使用redux-thunk

javascript - Node.js:注册 token 不是有效的 FCM 注册 token

javascript - 限制 map 后结果

java - 将 Cognito 身份验证与弹性负载均衡器结合使用

javascript - mouseover 和 mouseout 函数 DOM 元素高度碰撞

python - 在 Python 中对多维列表进行深度排序的最有效/最干净的方法是什么?

javascript - 如何更改单词中间字母的颜色(来自数组),javascript

javascript - 如何使用 map 函数创建一个数组同时排除重复值?

javascript - 如何使用 JSON 服务器更新 ReactJS 中的数据

javascript - 单击图片缩略图并使用javascript扩展到中心