невозможно установить состояние после получения запроса

Лучший способ - использовать виртуальную базу данных метаданных INFORMATION_SCHEMA . В частности, таблица INFORMATION_SCHEMA.COLUMNS ...

SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
    AND `TABLE_NAME`='yourtablename';

Это ОЧЕНЬ мощный и может предоставить вам информацию о TONS без необходимости синтаксического анализа текста (например, тип столбца, столбец является нулевым, максимальный размер столбца, набор символов и т. д.) ...

О, и это стандартный SQL (в то время как SHOW ... является специфическим для MySQL расширением) ...

Для получения дополнительной информации о различии между SHOW... и использованием таблиц INFORMATION_SCHEMA, проверьте документацию MySQL на INFORMATION_SCHEMA вообще ...

0
задан bird 18 March 2019 в 22:46
поделиться

2 ответа

Я думаю, что это синтаксис. Вам необходимо закрыть скобку в .then(response=>response.json()

componentDidMount() {
  fetch("http://localhost:3001/login")
  .then(response=>response.json()) // <-Insert a close bracket here
  .then(data=> this.setState({profileinfo:data[0].firstname}, () => console.log(this.state.profileinfo)) // <- Call console in callback
  ) // <- Remove one here
    console.log(this.state.profileinfo)
} 

и вызвать консоль в функции обратного вызова, чтобы получить правильное значение. Потому что setState является асинхронной функцией.

0
ответ дан bird 18 March 2019 в 22:46
поделиться

Вы пытались использовать функцию обратного вызова установленного состояния? возможно, что ваше состояние еще не было обновлено при ударе console.log.

может быть, попробовать

this.setState({profileinfo:data[0].firstname}, () => console.log(this.state.profileinfo))
0
ответ дан Gward2489 18 March 2019 в 22:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: