【问题标题】:ReactJs + Redux ---> Try to call name of business where item.business_id === businessIdReactJs + Redux ---> 尝试调用 item.business_id === businessId 的业务名称
【发布时间】:2020-07-03 14:34:00
【问题描述】:

我想在此查询中通过将其与 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>
    )
  )
}

}

谢谢你

【问题讨论】:

    标签: javascript arrays reactjs redux array.prototype.map


    【解决方案1】:

    过滤方法将返回array。使用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

    【讨论】:

    • 谢谢老哥,已经成功了,但是如何在里面调用.name
    • 您要调用哪个对象的名称?
    • _item(企业名称)
    • .name放在大括号后面。让我更新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2018-01-19
    • 2021-10-10
    • 1970-01-01
    • 2013-04-23
    相关资源
    最近更新 更多