我正在尝试为帖子创建作者信息块。
因此,我创建了一个块并尝试使用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()
?我想我应该创建一个空数组,并将数据值推送到其中。
但我不知道怎么做,我的知识还不够。
你能帮帮我吗?
最合适的回答,由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>