如何将获取的ID参数传递给变量 - React Native

时间:2018-01-17 21:03:34

标签: react-native axios

我正在使用axios同时发出几个http请求。像这样: enter image description here enter image description here

之后我创建了一个名为renderMoviesTrending()的辅助函数来显示从api获取的数据

从屏幕截图中可以看出,我通过onPress将电影ID(movieTrending.id)传递给onPressPosterTrending函数。这允许我将单个所选电影的数据传递给movieDetails.js。 (这一切都很好) enter image description here

我现在面临的问题是我需要进行新的api调用,我必须在其中放置movieTrending.id,以检索一组新的数据,这些数据允许我播放基于以下内容的所选电影的预告片。电影ID。

用于检索有关预告片的数据的http请求的新网址如下 - > https://api.themoviedb.org/3/movie/ 353486 /视频?API_KEY = 2e3b3e231665535756b50c3e216e0467

api数据如下所示: enter image description here

因此,当我创建一个新的辅助函数来发出http请求时,如何将上一个函数中的电影ID转换为url?

enter image description here

我app.js的更新代码 https://gist.github.com/anonymous/84107c7d295a848fbe1102b6df9ee8f5

我希望你们明白我在这里想要实现的目标。我用Google搜索了这个,但没有发现任何东西。也许我在搜索错误的关键字

非常感谢任何帮助

2 个答案:

答案 0 :(得分:0)

我觉得最简单的方法就是将状态中的当前电影趋势ID存储为新变量。这样它将可用于整个组件。

您实际上已经存储了当前的热门电影。

您只需使用this.state.selectedMovieTrending即可访问它。

所以你的网址变成:https://api.themoviedb.org/3/movie/ {this.state.selectedMovieTrending} / videos?api_key = 2e3b3e231665535756b50c3e216e0467

或' https://api.themoviedb.org/3/movie/' + this.state.selectedMovieTrending +' / videos?api_key = 2e3b3e231665535756b50c3e216e0467

答案 1 :(得分:0)

使用反应原生的flatlist 像这样

return <div onClick={() => onDelete(id)}>Hello</div>;

所以在另一个屏幕上你会得到像这样的电影ID参数

 <FlatList
     data={this.props.posts}
      keyExtractor={(item, index) => item._id}
     renderItem={({item}) =>{
            return(
                  <View >
                   <TouchableHighlight onPress={() => this.props.navigation.navigate('SingleMovieScree',{movieid:item.id})} >
                     // Use React navigation to nvaigate to another screen 
                    <Image style={styles.Poster} source={{ uri: `${TMDB_IMG_URL}${(movieTrending.poster_path)}` }} /> 
                   </TouchableHighlight>
                  </View>  
                 )
               }
             }
            />

然后使用此ID从请求中获取电影详细信息并在屏幕上显示