Я новый веб-разработчик, и совсем недавно во время работы над проектом у меня возникли проблемы с тем, что мой компонент не перерисовывался после вызова setState. Я рыскал по сети в поисках ответов на вопрос, почему мой setState не работает, и наконец понял, в чем моя проблема.

Теперь есть довольно конкретная причина, по которой это не сработало, но, поскольку я допустил ошибку, я полагаю, что некоторые новые разработчики также могут сделать то же самое. Я надеюсь, что это поможет любому, у кого есть эта проблема.

Мой бэкэнд использовал mongo, и мой вызов axios делал запрос к бэкэнду, чтобы получить полную учетную запись пользователя, и мой бэкэнд отвечал всем объектом пользователя. Я решил, что будет проще всего просто сохранить весь пользовательский объект в состоянии; Это была моя проблема все время.

componentDidMount() {
axios.get(`/api/get-user?token=${this.state.token}`)
    .then(res => {
        this.setState({
            user: res.data.user
    })
})
}

Итак, затем, пытаясь отладить это, я решил, что собираюсь просто попытаться получить отдельные части от этого, которые все время я просто пытался получить первое имя, поэтому вместо этого я изменил его на это

componentDidMount() {
axios.get(`/api/get-user?token=${this.state.token}`)
    .then(res => {
        this.setState({
            firstName: res.data.user.firstName
        })
    })
}

И вуаля, мой компонент начал повторный рендеринг, когда на вызов пришел ответ. теперь, к сожалению, я не знаю, почему оригинальный способ не работал, но я надеюсь, что это кому-то поможет.