親の状態が変更されると、コンポーネントは更新されません

デボンL

最初は関数をすばやく呼び出してから速度を落とすタイマーを取得しようとしています。増加するTimeInterval状態があり、小道具としてカウントダウンコンポーネントに渡されます

<Countdown
      isActive={RandominatorRunning}
      target={() => NextSelection()}
      timeToChange={TimeInterval}
  />

カウントダウンコンポーネント

import React, { useEffect } from 'react';

const Countdown = ({ isActive, target, timeToChange }) => {


    useEffect(() => {
        let interval = null;
        if (isActive) {
            interval = setInterval(() => {
                target()
            }, timeToChange)
        } else if (!isActive) {
            clearInterval(interval)
        }
        return () => clearInterval(interval)
    }, [isActive])

    return null
}

export default Countdown;

私のTimeInterval状態は正しく機能しており、NextSelection()が呼び出されると増加します。ただし、これはカウントダウンコンポーネントの間隔を増やすようには見えず、NextSelection()は、状態の変化するTimeIntervalペースではなく、常に同じペースで呼び出されます。カウントダウンコンポーネントがTimeInterval状態とともにペースを更新しないのはなぜですか?

デボンL

ポジティブではありませんが、これが最善の解決策ですが、カウントダウンコンポーネントを変更して、目的の効果を得ることができました。

カウントダウンコンポーネントを変更して、propの更新を実行している間は非アクティブになり、propの更新が完了するとすぐに再開します。

import React, { useEffect, useState } from 'react';

const Countdown = ({ isActive, target, timeToChange }) => {

    const [Active, setActive] = useState(isActive)

    const handleTimeExpire = async () => {
        await target()
        setActive(true)
    }

    useEffect(() => {
        let interval = null;
        if (Active) {
            interval = setInterval(() => {
                setActive(false)
                handleTimeExpire()
            }, timeToChange)
        } else if (!Active) {
            clearInterval(interval)
        }
        return () => clearInterval(interval)
    }, [Active])

    return null
}

export default Countdown;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

子コンポーネントが更新されたときに親の状態を変更する

分類Dev

親コンポーネントの状態が更新されても、React子コンポーネントは更新されません

分類Dev

Simple Reactコンポーネントは、Reduxの状態変更後に更新されません

分類Dev

子コンポーネントの状態を変更すると、親コンポーネントの小道具が変更されます

分類Dev

親コンポーネントでpropが変更されている場合、子コンポーネントの入力は更新されません

分類Dev

親の状態変更後に子コンポーネントが更新されないことに反応

分類Dev

親の状態が変更された後、子コンポーネントの小道具が更新されない

分類Dev

親の状態値が変更された場合に子コンポーネントを更新する方法

分類Dev

親の状態が変化すると、コンポーネントがアンマウントされます

分類Dev

親の状態が変更された後、子コンポーネントが更新されないことに反応する

分類Dev

reactJsの親の状態を変更しても、reactの子コンポーネントの小道具は変更されません

分類Dev

ReactJS:親の状態が設定される前に子コンポーネントが更新されます

分類Dev

状態が変化してもReactコンポーネントは更新されません

分類Dev

1つが変更されたときに、マップされた各コンポーネントのコンポーネント状態を更新する方法

分類Dev

親コンポーネントの状態が変化すると、Reactルートコンポーネントが再レンダリングされます

分類Dev

Reactコンポーネントはredux状態の変化で更新されません

分類Dev

React redux-親の状態は変化しますが、子コンポーネントは再レンダリングされません

分類Dev

親の状態が更新されたときに子コンポーネントを更新する

分類Dev

子コンポーネントで小道具をログに記録すると、更新された値が得られますが、親で定義された状態自体はまだ更新されません。

分類Dev

reduxの状態は変更されましたが、接続されたコンポーネントが更新されませんでした。ミューテーションを理解できません

分類Dev

React / Redux-一部の親状態の変更でReduxが更新され、他の変更ではない子コンポーネント

分類Dev

コンポーネントが接続されていることに反応し、reduxの状態が変化します...しかしコンポーネントの更新はありませんか?

分類Dev

親コンポーネントの状態を更新すると、子の状態がデフォルト値に設定されます

分類Dev

コンポーネントは再レンダリングされませんが、reactフックを介してredux状態が変更されました

分類Dev

React SpringのuseTransition状態の更新により、既存のコンポーネントが変更されます

分類Dev

コンポーネントの入力が変更されても小道具は更新されません

分類Dev

redux状態の変更はコンポーネントの変更を引き起こしません/ componentDidUpdateは呼び出されません

分類Dev

React-コンポーネントに関係のない状態を変更すると、最大更新深度エラーがトリガーされます

分類Dev

開発ツールでコンポーネントの状態が更新されますが、後でthis.stateを呼び出すと更新されません

Related 関連記事

  1. 1

    子コンポーネントが更新されたときに親の状態を変更する

  2. 2

    親コンポーネントの状態が更新されても、React子コンポーネントは更新されません

  3. 3

    Simple Reactコンポーネントは、Reduxの状態変更後に更新されません

  4. 4

    子コンポーネントの状態を変更すると、親コンポーネントの小道具が変更されます

  5. 5

    親コンポーネントでpropが変更されている場合、子コンポーネントの入力は更新されません

  6. 6

    親の状態変更後に子コンポーネントが更新されないことに反応

  7. 7

    親の状態が変更された後、子コンポーネントの小道具が更新されない

  8. 8

    親の状態値が変更された場合に子コンポーネントを更新する方法

  9. 9

    親の状態が変化すると、コンポーネントがアンマウントされます

  10. 10

    親の状態が変更された後、子コンポーネントが更新されないことに反応する

  11. 11

    reactJsの親の状態を変更しても、reactの子コンポーネントの小道具は変更されません

  12. 12

    ReactJS:親の状態が設定される前に子コンポーネントが更新されます

  13. 13

    状態が変化してもReactコンポーネントは更新されません

  14. 14

    1つが変更されたときに、マップされた各コンポーネントのコンポーネント状態を更新する方法

  15. 15

    親コンポーネントの状態が変化すると、Reactルートコンポーネントが再レンダリングされます

  16. 16

    Reactコンポーネントはredux状態の変化で更新されません

  17. 17

    React redux-親の状態は変化しますが、子コンポーネントは再レンダリングされません

  18. 18

    親の状態が更新されたときに子コンポーネントを更新する

  19. 19

    子コンポーネントで小道具をログに記録すると、更新された値が得られますが、親で定義された状態自体はまだ更新されません。

  20. 20

    reduxの状態は変更されましたが、接続されたコンポーネントが更新されませんでした。ミューテーションを理解できません

  21. 21

    React / Redux-一部の親状態の変更でReduxが更新され、他の変更ではない子コンポーネント

  22. 22

    コンポーネントが接続されていることに反応し、reduxの状態が変化します...しかしコンポーネントの更新はありませんか?

  23. 23

    親コンポーネントの状態を更新すると、子の状態がデフォルト値に設定されます

  24. 24

    コンポーネントは再レンダリングされませんが、reactフックを介してredux状態が変更されました

  25. 25

    React SpringのuseTransition状態の更新により、既存のコンポーネントが変更されます

  26. 26

    コンポーネントの入力が変更されても小道具は更新されません

  27. 27

    redux状態の変更はコンポーネントの変更を引き起こしません/ componentDidUpdateは呼び出されません

  28. 28

    React-コンポーネントに関係のない状態を変更すると、最大更新深度エラーがトリガーされます

  29. 29

    開発ツールでコンポーネントの状態が更新されますが、後でthis.stateを呼び出すと更新されません

ホットタグ

アーカイブ