Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.1K
Views
How to destroy component or stop its execution when route changes using React-Native?

I am creating simple countdown component with React-Native and using this package react-native-countdown-component, I want to destroy this Timer component or stop its execution when the focused screen changes, for Bottom navigation I am using React-Native Tab navigation, what is best solution to achieve this result?

import { MaterialCommunityIcons } from "@expo/vector-icons";
import React, { useEffect, useState } from "react";
import { View } from "react-native";
import CountDown from "react-native-countdown-component";

const Timer: React.FC<{ expirationDate: number }> = ({ expirationDate }) => {
    const [timer, setCurrentTime] = useState<number>(expirationDate);
    const [inactive, setIncative] = useState(false);

    return (
        <View
            style={{
                backgroundColor: timer < 300 || inactive ? "#edbcbc" : "#cee5f4",
                width: 70,
                borderRadius: 7,
                paddingVertical: 6,
                flexDirection: "row",
                alignItems: "center",
                justifyContent: "center",
                position: "relative",
            }}
        >
            <View style={{ position: "relative", left: 4 }}>
                <MaterialCommunityIcons name="timer-outline" size={13} color={timer < 300 || inactive ? "#f54c4c" : "#004978"} />
            </View>
            <CountDown
                until={timer}
                timeToShow={["M", "S"]}
                timeLabels={false}
                digitStyle={{ backgroundColor: "#f5f5f500" }}
                separatorStyle={{ color: "#004978", fontSize: 10 }}
                digitTxtStyle={{ color: timer < 300 || inactive ? "#f54c4c" : "#004978" }}
                onFinish={() => setIncative(true)}
                size={9}
                running={timer ? true : false}
                showSeparator
            />
        </View>
    );
};

export default Timer;

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

the useEffect function allows you to return a function that gets called when a component unmounts. you could use that or call something when the tab changes.

over 4 years ago · Santiago Trujillo Report

0

The CountDown component manages the timer itself and the library author manage to clear the timer when the component unmount https://github.com/talalmajali/react-native-countdown-component/blob/master/index.js#L58

over 4 years ago · Santiago Trujillo Report

0

please read this link:

https://github.com/talalmajali/react-native-countdown-component/blob/master/index.js#L58

if you have any question you can ask it

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!