Вернитесь к компоненту, не можете обновить состояние - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь загрузить соответствующее видео react-native-youtube standaloneplayer, в зависимости от того, какие параметры передаются компоненту.

Он отлично работает при первой загрузке, но когда я нажимаю кнопку «Назад» и возвращаюсь на страницу с помощью react-navigation и с другим id, видео остается таким же - как я могу поменять плеер с новыми реквизитами :

   <Text
      onPress={() => {
        NavigationService.navigate("VideoPlayer", { id });
      }}
      style={styles.text}
    >

Мой компонент видеоплеера:

 class VideoPlayer extends React.PureComponent {
  constructor(props) {
    super(props);
    this.state = {
    };
  }

  render() {
    const { id: propId } = NavigationService.getParams();
    const { videos } = this.props;

    // videos is array of objects
    let videoProps = videos.find(obj => obj.id == propId);

    let { id, icon, title, description, youtubeVideo, preview } = videoProps;
    const url = `https://img.youtube.com/vi/${youtubeVideo}/0.jpg`;

    return (
      <View style={styles.container}>
        <TouchableOpacity
          onPress={() =>
            YouTubeStandaloneAndroid.playVideo({
              apiKey: "AIzaSyBXX5qe0B2hb1HzvIvExJZbqspeG9dg0Dk",
              videoId: youtubeVideo,
              autoplay: true,
              lightboxMode: true,
              startTime: 124.5
            })
              .then(() => console.log("Android Standalone Player Finished"))
              .catch(errorMessage => console.log(errorMessage))
          }
        >
          <Image style={styles.image} source={{ uri: url }} />
        </TouchableOpacity>
        <Text>{description}</Text>
      </View>
    );
  }
}

const mapStateToProps = state => {
  return {
    videos: state.videos
  };
};

1 Ответ

0 голосов
/ 05 июня 2019

Вы можете попробовать заменить navigate на действие push.Разница в том, что как только маршрут из стека посещается один раз, навигация приведет вас к нему, не подключая его снова.С помощью push вы можете монтировать один и тот же маршрут несколько раз с разными параметрами.Вот больше информации из официальных документов: https://reactnavigation.org/docs/en/stack-actions.html#push

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...