我将reactjs与redux一起使用,这是我的一个组件的一部分。
我想呈现postList
返回的承诺handleFetchPosts
,但render()
函数在then()
shouldComponentUpdate
完成之前开始渲染
如何在then
完成后推迟渲染或重新渲染?
constructor(props) {
super(props);
this.postList = props.postList;
this.props.handleFetchPosts('/main', 'about', '');
}
shouldComponentUpdate(nextProps) {
if (this.postList !== nextProps.postList) {
nextProps.postList.then(data => {
this.postList = data;
});
return true;
}
else {
return false;
}
}
render() {
return (
<div className="content">
<p>
{this.postList + ""}
{/*content*/}
</p>
</div>
);
}
答案 0 :(得分:1)
你正在使用Redux的事实,我设置了一个asComponentUpdate调用的异步动作,它启动了Promise调用。 这样,您可以在启动Promise之后更新状态,以便在render方法中使用以防止呈现。 一旦调用结束,发送最终的ACTION并返回结果并更改标志。
答案 1 :(得分:0)
要管理组件呈现,请使用组件的import android.support.multidex.MultiDexApplication;
public class MyApplication extends MultiDexApplication {
/* To enable Multi-Dex, you have 3 options -
1. Declare android.support.multidex.MultiDexApplication as your application class in AndroidManifest.xml
2. Extend MultiDexApplication like we are doing here
3. Override attachBaseContext() in your application class as shown below
/*
*/
/*
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
*/
}
。并在收到数据时进行更新。
state