ReactJs + Redux ---> Попробуйте назвать название компании, где item.business_id === businessId - PullRequest
0 голосов
/ 23 марта 2020

Я бы хотел назвать название этого предприятия, сопоставив его с 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>
    )
  )
}

}

спасибо, mastah

1 Ответ

1 голос
/ 23 марта 2020

Метод фильтра вернет 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.

...