Я разрабатываю блок Гутенберга для получения сообщений из API WP REST с использованием wp.api.collections.
Однако при вызове new wp.api.collections.Posts()
я получаю следующую консольную ошибку:
TypeError: wp.api.collections.Posts не является конструктором
Мой код выглядит следующим образом:
constructor() {
super(...arguments);
this.state = this.constructor.getInitialState(
this.props.attributes.selectedPost
);
//Binding
this.getOptions = this.getOptions.bind(this);
//Load the posts
this.getOptions();
this.onChangeSelectPost = this.onChangeSelectPost.bind(this);
}
getOptions() {
return ( new wp.api.collections.Posts() ).fetch().then(posts => {
if (posts && 0 !== this.state.selectedPost) {
//If we have a selected post, find that post and return it
const post = posts.find(item => {
return item.id == this.state.selectedPost;
});
this.setState({ post, posts });
} else {
this.setState({ posts });
}
});
}
При доступе к wp.api.collections
на консоли,коллекция Posts()
не появляется.
Следует отметить, что при регистрации скрипта редактора wp-api
зарегистрирован как зависимость.
Похоже, что новыйКоллекции collection.Posts () происходит до того, как обещание API будет возвращено. При этом я не на 100% уверен, что это так, или, если это так, что делать, чтобы решить проблему. Из документов WordPress я не вижу никаких дополнительных шагов, которые необходимо включить, но я никогда раньше не работал с BackboneJS, поэтому мне интересно, есть ли здесь что-то, что нужно сделать.