Задать вопрос
@Slav4ka

Почему после изменения useState компонента не перерисовывается?

У меня есть компонент с хуком useState. После вызова setAdvertiserTypeFilter не происходит перерисовка компоненты, почему?

const ProfilesList = () => {
    
    const [advertiserTypeFilter, setAdvertiserTypeFilter] = useState({All: true, Individual: false, Companies: false});

    const changeAdvertiserFilter = (activeFilter) => {
        let currentFilerState = advertiserTypeFilter;
        for (let advertiser in currentFilerState) {
            activeFilter.toString() === advertiser.toString() ? currentFilerState[advertiser] = true : currentFilerState[advertiser] = false
        }
        setAdvertiserTypeFilter(currentFilerState);
        console.log(advertiserTypeFilter);
    };

    return (
        <Container>
            <Row>
                <Col>
                    <div className={style.profilesMainBlock}>

                        <div className={style.headers}>
                            <h5 className={style.address}>
                                Медицина <IoIosArrowRoundForward/> Врачи
                            </h5>
                        </div>

                        <div className={style.sorts}>

                            <div className={style.advertiserTypeFilters}>

                                <span onClick={() => changeAdvertiserFilter('All')}
                                      className={(advertiserTypeFilter.All) ? `${style.advertiserType} ${style.activeFilter}` : `${style.advertiserType}`}>
                                    Все
                                </span>

                                <span onClick={() => changeAdvertiserFilter('Individual')}
                                      className={(advertiserTypeFilter.Individual) ? `${style.advertiserType} ${style.activeFilter}` : `${style.advertiserType}`}>
                                    Частные
                                </span>

                                <span onClick={() => changeAdvertiserFilter('Companies')}
                                      className={(advertiserTypeFilter.Companies) ? `${style.advertiserType} ${style.activeFilter}` : `${style.advertiserType}`}>
                                    Компании
                                </span>
                            </div>

                            {/*<h6 style={{padding: '5px 0 0 20px'}}>
                                Сортировка:дата рейтинг стаж стоимость
                            </h6>*/}

                        </div>

                        <div className={style.profilesList}>
                            <ProfileItem/>
                            <ProfileItem/>
                            <ProfileItem/>
                            <ProfileItem/>
                        </div>
                    </div>
                </Col>
            </Row>
        </Container>
    )
};
export default ProfilesList
  • Вопрос задан
  • 458 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Изменений нет - объект остаётся тем же самым. Копируйте его.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽