如何正确使用apiFetch在古登堡获取作者信息?

时间:2020-04-08 作者:Aslan

我正在尝试为帖子创建作者信息块。

因此,我创建了一个块并尝试使用redux获取作者信息,但只能获取作者id:

const applyWithSelect = withSelect(
    (select, props) => {
        return {
            authorId: select(\'core/editor\').getCurrentPostAttribute(\'author\')
        }
    }
);
然后,我尝试使用apiFetch通过其id获取作者信息:

const authorApi = apiFetch( { path: `/wp/v2/users/${authorId}` } ).then(data => {console.log(data)});
所以它实际上起作用了,我在控制台中获得了所有作者信息。但如何让数据值映射到其中呢?

我应该在里面插入什么then()?我想我应该创建一个空数组,并将数据值推送到其中。

但我不知道怎么做,我的知识还不够。

你能帮帮我吗?

1 个回复
最合适的回答,由SO网友:Aslan 整理而成

最后,我发现了怎么做。只需在componentDidMount中调用fetchApi,然后在组件中创建一个新状态,并在请求完成时将响应添加到此状态:

constructor(props) {
    super(props);
    this.state = {
      data: {},
    };
}
componentDidMount() {
    apiFetch( { path: \'/wp/v2/users/1\' } )
      .then(data => this.setState({ data }));
}
然后在渲染中:

const { data } = this.state;
最后作为回报,例如作者的化身:

<div className={className}>
    { data.avatar_url ? (<img src={data.avatar_url[\'24\']} />) : (<></>) }
</div>