Несколько вещей здесь.
Ваше состояние не меняется, потому что функция, в которой вы вызываете setState
, имеет значение для this
, отличное от ожидаемого. Если вы проверите консоль, вы должны увидеть ошибку, указывающую, что this.setState
не является функцией. Вам необходимо изменить следующее:
window.FB.api('/me', 'GET', {"fields":"posts{created_time,likes,comments,picture,full_picture,shares,message},name,picture","access_token":this.state.disPageTken},
function(response) {
console.log(response)
К этому:
window.FB.api('/me', 'GET', {"fields":"posts{created_time,likes,comments,picture,full_picture,shares,message},name,picture","access_token":this.state.disPageTken},
(response) => {
console.log(response)
Функция стрелки фиксирует текущее значение this
, поэтому этот код будет работать как положено.
Во-вторых, не используйте componentWillMount()
для побочных эффектов (таких как получение) - в идеале, вообще не используйте его. При монтировании компонента он может вызываться несколько раз, что приведет к нескольким выборкам. Он не существует в более новых версиях React (он переименован в UNSAFE_componentWillMount())
и будет удален в будущей версии React .
Вместо этого используйте componentDidMount()
. Вызывается только один раз, когда компонент смонтирован.