javascript - 如何根据 React Native 中的条件在不同组件之间导航

标签 javascript reactjs react-native react-navigation

我正在用 React Native 构建一个移动应用程序,其中视频和音频来自同一数据数组。现在我将它们渲染成平面列表,音频和视频随机组合在一起。现在我希望如果我单击音频文件,它应该导航到音频组件,如果我单击任何视频,它应该导航到视频组件。但我不知道如何过滤和导航到各自的组件。请帮助我。谢谢

我的代码

主文件:它正在导航到音频组件,无论我单击音频文件还是视频文件

 <FlatList
        horizontal
        data={latestuploads}
        keyExtractor={item => item.id}
        renderItem={({item}) => {
          return (
            <ScrollView horizontal={true}>
              <Card transparent style={{width: 170}}>
                <TouchableOpacity
                  onPress={() =>
                    this.props.navigation.navigate('Audio', {id: item.id})
                  }>
                  <CardItem>
                    <ImageBackground
                      source={{uri: item.image_url}}
                      style={styles.image}>
                      <Image
                        source={require('../assets/play-icon.png')}
                        style={styles.icon}
                      />
                    </ImageBackground>
                  </CardItem>
                </TouchableOpacity>

                <CardItem cardBody>
                  <Text numberOfLines={1} style={styles.title}>
                    {item.title}
                  </Text>
                </CardItem>
                <CardItem cardBody>
                  <Text style={styles.speaker}> {item.speaker} </Text>
                </CardItem>
              </Card>
            </ScrollView>
          );
        }}
      />

最佳答案

我想您正在从数据数组中获取文件扩展名示例 .mp4/.mp3 等或 Audio/Video 标志。

创建一个采用文件信息示例的函数:

navigateTo = (fileinfo) => {
 // const filetype = check for file type, Audio/Video or file extension

if (filetype === 'Audio'){
  this.props.navigation.navigate('Audio', {id: fileinfo.id})
} else {
  this.props.navigation.navigate('Video', {id: fileinfo.id})
}

将其传递给您的TouchableOpacity:

<TouchableOpacity
  onPress={() => navigateTo(item)}>
  // your code here
</TouchableOpacity>                

关于javascript - 如何根据 React Native 中的条件在不同组件之间导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60717696/

相关文章:

javascript - javascript中的对象和关联数组有什么区别?

javascript - AWS Lambda : console. 错误未覆盖

javascript - Hashids PHP 和 JS 兼容性

javascript - 如何进行一个在检查元素外观之前等待 5 秒的测试(React 测试库)

node.js - React 无法编译reactLifecyclesCompat 错误

react-native - Swiper 直到滚动才显示图像(来自 URI)

javascript - 绑定(bind)多个事件并在所有事件触发时运行函数! JS、Jquery

ruby-on-rails - 如何避免reactjs中的key/id问题并使 Prop 从父级传递到子级?

javascript - 无法在我的组件中调用 redux 操作

react-native - React 原生 NFC 读卡器