【发布时间】:2019-01-05 20:06:22
【问题描述】:
我有一个加载函数,可以将我的数据加载到我的 ListView 数据源中,正如您可能知道的那样,ListView 不会总是随着状态变化而重新渲染,我需要强制更新它这个加载函数工作得非常好,可以通过按钮调用,但我希望它能够自动加载但在 componentwill/did 挂载函数中调用 forceupdate 不可用我该怎么办?我只想在渲染后稍微延迟调用我的函数。问题是 this.props.navigation 在渲染之前不是一个对象,不能在 componentwill/did mount 中使用。
// UNSAFE_componentWillMount() {
// this.makeScene();
// }
makeScene(){
var count = Object.keys(window.contents[this.props.navigation.getParam('name')]).length;
for(let i = 0 ; i < count ; i ++){
global.subnum[i] = i;
global.lowersubjects[i] = window.contents[this.props.navigation.getParam('name')][i].subject;
global.lowerdescriptions[i] = window.contents[this.props.navigation.getParam('name')][i].description;
global.lowerimageurl[i] = window.contents[this.props.navigation.getParam('name')][i].imageurl;
global.author[i] = window.contents[this.props.navigation.getParam('name')][i].author;
global.eventdate[i] = window.contents[this.props.navigation.getParam('name')][i].eventdate;
}
this.setState({
subnum : global.subnum
});
this.forceUpdate();
}
取消注释将导致我的应用按钮和渲染停止工作。
【问题讨论】:
标签: listview react-native components delay rerender