Как обновить обратный отсчет - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть проблема, которая убивает меня.Я могу обновить обратный отсчет в компоненте плоского списка.Это мой код:

App.js

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import moment from 'moment'
import Countdown from 'react-countdown-moment'

import HomeStudent from './src/screens/containers/homeStudent';
import Header from './src/sections/components/header';
import PermitsActive from './src/permits/containers/permitsActive';
import API from './utils/api';

type Props = {};
export default class App extends Component<Props> {
state = {
 permitActive:[],
}

async componentDidMount(){

permits = await API.getPermitActive(1);
console.log(permits)
this.x = setInterval(()=> {
  // Set the date we're counting down to
  var countDownDate = new Date("Dec 27, 2018 19:13:30").getTime();
  var now = new Date().getTime();
  var distance = countDownDate - now;
  if(permits.length > 0){
  permits[0].hours  = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  permits[0].minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  permits[0].seconds = Math.floor((distance % (1000 * 60)) / 1000);
}
  if (distance < 0) {
    clearInterval(this.x);
    this.setState({
      permitActive: [],
    })
    return
  }
  this.setState({
    permitActive: permits,
  })
}, 1000);

  }

componentWillUnmount() {
 clearInterval(this.x);
}

 render() {
  return (
    <HomeStudent>
    <Header 
      title = "RU Madre Riquelme"
    />
    <PermitsActive 
      list = {this.state.permitActive}
      tempo = {this.state.seconds}
    />
    <Text>{this.state.seconds}</Text>
  </HomeStudent>
);
 }
}

Дочерний компонент получает реквизиты, но не обновляется каждый раз, когда setinterval обновляет состояние.Есть что-то, чего я не могу понять в реакции на натив, как в целом обновление компонента в реальном времени.

...