render react native 后调用的函数
Function called after render react native
我有一个加载函数,可以将我的数据加载到我的 ListView 数据源,正如您可能知道的那样,ListView 不会总是随着状态的变化而重新呈现,我需要强制更新它这个加载函数通过按钮调用时效果很好,但我想要它可以自动加载,但在 componentwill/did 挂载函数中调用 forceupdate 不可用我该怎么办?我只想在渲染后稍微延迟调用我的函数。问题是 this.props.navigation 不是渲染前的对象,不能在 componentwill/did 挂载中使用。
// 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();
}
取消注释会导致我的应用程序按钮和渲染停止工作。
3 件事:
首先,如果指定字段为空或不存在,则 getParam 缺少默认值参数:
var name = this.props.navigation.getParam('name', 'defaultName')
有了名称,您就不必一直调用它来访问您的数组单元格。
其次,你是什么人window.contents?
最后,如果组件的状态或道具发生变化,每次 this.setState() 调用都会导致视图呈现。您应该在 componentDidMount()
中调用您的过程,是的,this.props.navigation
应该可以访问 componentDidMount()
,因为我想您的组件在导航器中...
我有一个加载函数,可以将我的数据加载到我的 ListView 数据源,正如您可能知道的那样,ListView 不会总是随着状态的变化而重新呈现,我需要强制更新它这个加载函数通过按钮调用时效果很好,但我想要它可以自动加载,但在 componentwill/did 挂载函数中调用 forceupdate 不可用我该怎么办?我只想在渲染后稍微延迟调用我的函数。问题是 this.props.navigation 不是渲染前的对象,不能在 componentwill/did 挂载中使用。
// 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();
}
取消注释会导致我的应用程序按钮和渲染停止工作。
3 件事:
首先,如果指定字段为空或不存在,则 getParam 缺少默认值参数:
var name = this.props.navigation.getParam('name', 'defaultName')
有了名称,您就不必一直调用它来访问您的数组单元格。
其次,你是什么人window.contents?
最后,如果组件的状态或道具发生变化,每次 this.setState() 调用都会导致视图呈现。您应该在 componentDidMount()
中调用您的过程,是的,this.props.navigation
应该可以访问 componentDidMount()
,因为我想您的组件在导航器中...