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

Почему у меня перерендеривается компонент, в котором нет ни пропсов, ни состояния?

Почему у меня перерендеривается компонент, в котором нет ни пропсов, ни состояния?
У меня есть страница Product, содержащая в себе форму для создания
отзывов(FormCreateReview) к товару и сами отзывы(ReviewsList), также есть кнопка, при
нажатии на которую эти самые отзывы и показываются. Но почему - то вместе с
рендером отзывов, перерендеривается и форма, в которой нет ничего кроме jsx. Из-за чего
это происходит, как это решить?
Вывод в консоли, когда нажимаю на кнопку "посмотреть отзывы":
RENDER PRODUCT CARD
RENDER FORM
RENDER REVIEW LIST

const Product = () => {
    const [isShowReviewsProduct, setIsShowReviewsProduct] = useState(false)

    console.log("RENDER PRODUCT CARD")

    const toggleIsShowReviewsProduct = () => {
        setIsShowReviewsProduct(!isShowReviewsProduct)
    }

    const reviewsList = isShowReviewsProduct ? <ReviewsList idProduct={idProduct}  /> : null

    return (
        <div>
            <h2>Page Product</h2>
            <FormCreateReview />
            <div className="reviews">
                <button onClick={toggleIsShowReviewsProduct}>Показать отзывы</button>
                {reviewsList}
            </div>
        </div>
    )
}


const FormCreateReview = () => {


    console.log("RENDER FORM ")

    return  (

        <div className="form-reviews">
            <h4>Form Create Review...</h4>
            <input type="text"/>
            <button >Добавить отзыв</button>
        </div>
    )
}
  • Вопрос задан
  • 138 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • beONmax
    Профессия Frontend разработчик
    12 месяцев
    Далее
  • beONmax
    Профессия Веб разработчик
    10 месяцев
    Далее
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
const FormCreateReview = React.memo(() => {
   ... 
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
insighter
@insighter
-First time? - Huh? (C#, React, JS)
Меняется состояние родительского компонента, вызывается повторный рендер всех его детей. Все правильно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽