这种比较似乎是无意的,因为类型 'PlaybackState | { 状态:未定义; }' 和 'State' 没有重叠

问题描述 投票:0回答:1
import React, { useState } from 'react'
import { View, StyleSheet, Pressable} from 'react-native'
import TrackPlayer, { State , usePlaybackState } from 'react-native-track-player';
import Icon from 'react-native-vector-icons/FontAwesome';

const ControlCenter = () => {

   const playBackState = usePlaybackState()
   const skipToNext = async () => {
    await TrackPlayer.skipToNext()
   }
   const skipToPrevious = async () => {
    await TrackPlayer.skipToPrevious()
 }
   const togglePlayback = async (playback: State) => {
   const currentTrack = await TrackPlayer.getActiveTrack();

    if (currentTrack !== null) {
    if (playback === State.Paused || playback === State.Ready) {
    await TrackPlayer.play()
  }
  else {
    await TrackPlayer.pause();
  }
}

};

    const [bgColor, setBgColor] = useState("#ff0000")
      return (
       <View style={[styles.container, { backgroundColor: `${bgColor}` }]}>
        <Pressable onPress={skipToPrevious}>
        <Icon style={styles.icon} name="step-backward" size={40} />
        </Pressable>
         <Pressable onPress={() => togglePlayback(playBackState)}>
         <Icon
           style={[styles.icon, styles.playButton]}
            name={playBackState === State.Playing ? "pause" : "play"}
          size={75}
          />
        </Pressable>
       <Pressable onPress={skipToNext}>
        <Icon style={styles.icon} name="step-forward" size={40} color="#900" />
      </Pressable>

      </View>
      )
}

我正在尝试比较播放状态和

State.Playing
的值,但它给出了错误

'PlaybackState | 类型的参数{ 状态:未定义; }' 不是 可分配给“State”类型的参数。并且出现此比较 是无意的,因为类型 'PlaybackState | { 状态: 不明确的; }' 和 'State' 没有重叠

react-native react-hooks state react-native-track-player
1个回答
0
投票

我最近也遇到了类似的错误。您只需要将“playBackState”替换为“playBackState.state”即可。

© www.soinside.com 2019 - 2024. All rights reserved.