2016-08-11 48 views
0

我有一个组件显示ListView中的用户,它需要在呈现前进行抓取调用。React Native在渲染之前进行网络调用

我浏览到使用该组件:

this.props.navigator.resetTo({ id: 'ListUsers', getusers: true });  

ListUsers组件我有componentWillReceiveProps,这样我可以使读取调用之前渲染。

但是该方法从未被调用过。我可以导航到AddUser组件。

从这里添加新用户或者用户可以取消。

如果添加新用户,我导航回用ListUsers组件:

this.props.navigator.resetTo({ id: 'ListUsers', getusers: true });  

此时componentWillReceiveProps被调用。

如果用户取消,然后我用导航回到ListUsers组件:

this.props.navigator.pop(); 

谁能帮助,看看有什么我做错了吗?

回答

0

您完美的描述了该文件说,使用componentWillReceiveProps

从文档时会发生:

componentWillReceiveProps

调用当组件接收新道具。此方法不是调用初始渲染的 。

在你的场景中,你有什么理由不能使用componentWillMount来获取调用吗?在渲染组件之前调用componentWillMount,它是您可以调用setState的第一个点。

如果问题是你需要保证渲染只在提取完成之前显示某些数据,有一些策略可以做到这一点,但最简单的方法可能是在你的状态中简单地设置一个标志为false构造函数(如果您使用ES6方法进行开发),并在提取完成后将其翻转为true。渲染方法中的if语句将完成此策略。

如果你想让我整理一个更全面的例子,我可以这样做。

相关问题