在电影的详细页面上,会根据传递过来的电影 id 这个属性的值,向服务端发生请求,得到电影的详细内容以后,把它交给组件的 movieDetail 这个状态。这样你在组件里面就可以使用这些数据了。
不过这里有个问题,就是向服务端发请求需要点时间,在组件的 render 方法里访问这些数据的时候,很可能还没有得到这些数据。我们可以在 render 方法里,先去判断一下,是不是已经得到了数据,没得到的话就先显示一个加载指示器 .. 得到数据才去显示这些数据。
这跟我们在 MovieList 里面创建的那个加载指示功能是一样的 .. 先给组件添加一个 loaded 状态 .. 它的初始值设置成 false .. 然后在得到数据以后,除了设置 movieDetail 以外,再去设置一下 loaded 的值,把它设置成 true ..
打开 MovieList .. 复制一下 render 方法里的这几行代码 .. 然后粘贴到 MovieDeatil 的 render 方法里面 .. 这里就是去判断一下是不是从服务端那里得到了数据 .. 如果没有,就显示一个加载指示器 .. 这里用了一个 ActivityIndicatorIOS 组件 .
保存 .. 再去试一下 .. 打开一个电影项目 .. 一开始会显示一个加载指示器 .. 从服务端那里得到数据以后,组件会重新显示 .. 这样就可以安全的使用从服务端那里得到的数据了。