Вызовите setState внутри функции внутри функции - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь вызвать setState внутри функции внутри функции. Вот моя функция.

//iohook Idle Functions.
    setIdleTimeout = (millis) => {
        var timeout = 0;
        //Adding iohook Event Listners.
        ioHook.start();
        ioHook.on('mouseclick', onActivity);
        ioHook.on('keypress', onActivity);
        ioHook.on('mousewheel', onActivity);
        ioHook.on('mousemove', onActivity);
        startTimer();

        function startTimer() {
            timeout = setTimeout(onExpires, millis);
        }

        function onExpires() {
            timeout = 0;
            alert("User Idle. Click 'OK' to dismiss this window and restart task timer.");
            this.setState({ isTimerRunning: false }); // <--- Here
        }

        function onActivity(event) {
            if (timeout) clearTimeout(timeout);
            else {
                console.log('Welcome Back.');
            }
            startTimer();
        }
    };

И я вызываю setIdleTimeout(5000) функцию вне этой функции.

Но я получаю эту ошибку.

Uncaught TypeError: this.setState is not a function at onExpires

Я пытался изменить каждую функцию на функцию стрелки без посторонней помощи. Можете ли вы, ребята, помочь мне разобраться с этим? Спасибо,

...