@lookingfor2

Почему не происходит новый рендеринг при изменении props?

Родительский компонент
Тут переменные с данными
const dataSystem = {
        data: GetSystem,
        title: 'Системные сообщения',
    };
    const dataServices = {
        data: GetServices,
        title: 'Кредитный рейтинг',
    };
хук с состоянием
const [objectOperationsData, setObjectOperationsData] = useState(dataLoan);

дочерний компонент, куда передаем objectOperationsData
<RenderData props={objectOperationsData}/>


дочерний компонент

class RenderData extends Component {
    constructor(props) {
        super(props);
        this.state = {
            obtainedData: {},
            loading: false,
        };
    }

    componentDidMount() {
        console.log(this.props.props.data().then(response => {console.log(response.data)}))
        this.props.props.data().then(response => {
            this.setState({obtainedData: response.data});
            this.setState({loading: !this.state.loading});
        });
    }


Пропс меняется, но данные в состояние не переписываются, как сделать чтобы состояние менялось и как следствие, заново рендерилось все
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 1
@lookingfor2 Автор вопроса
И отдельно стоит отметить функцию componentWillReceiveProps(nextProps), которая вызывается при обновлении объекта props. Новые значения этого объекта передаются в функции в качестве параметра. Как правило, в этой функции устанавливаются те свойства компонента, в том числе из this.state, которые зависят от значений из props.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы