問題タブ [setstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2338 参照

javascript - React メソッドでの複数の setState() 呼び出し:「同期的に」機能させる方法

そのため、React アプリケーションで問題が発生しましsetState()た。1 つのメソッドで複数の呼び出しを行い、状態が設定された後にコードを実行する必要がある特定のケースに遭遇しました。以下のコードは、Web サイトにアカウントを追加するために使用されるダイアログ ボックスです。

問題はhandleSubmit()メソッドにあります。ユーザーがユーザー名とパスワードのフィールドに何かを入力したこと、およびパスワードと確認パスワードのフィールドが一致していることを確認する必要がありました。そうでない場合は、状態による変更が必要なフィールドにエラー テキストを追加します。次に、状態を調べて、エラーがあるかどうかを確認しようとしました。

残念ながら、私がすぐに理解したように、setState()関数は非同期です。つまり、最終チェックの前に状態が変更されません。コードを実行する前に状態が変化するのを待つ方法をグーグルで検索しましたが、空になりました。私は今この問題を解決し、それをスタックに載せて、他の人が私が思いついた方法の恩恵を受けるかもしれないと考えました。また、私がやっていることの長所と短所、またはよりうまくいくかもしれない提案を知りたい.

グーグルで検索すると、次のようにコールバックを送信するメソッドに出くわしましたsetState(): setState(data, callback). setState()複数の通話があったため、最初はこれがうまくいくとは思いませんでした。しかし、handleSubmit()メソッドを 3 項を使用した単一のsetState()呼び出しに変換できることに気付きました。そのようです:

状態が変更された後に匿名のコールバック関数が実行されるため、チェックが機能します。

この方法で予測される唯一の問題は、入れ子になった三項です。これは、必要に応じて非常に面倒になる可能性があるためです。これが私のプログラムに悪影響を与える可能性はありますか? または、これを解決できたより良い方法はありますか?

私の解決策で何人かの人々を助けたことを願っています。:D

0 投票する
3 に答える
684 参照

javascript - 警告: setState(...): マウントされたコンポーネントまたはマウントされたコンポーネントのみを更新できます

このエラーを取り除くことはできません。配列から 1 つのアイテムを削除して状態を更新すると発生します。

いくつかのデバッグの後、アプリをリロードし、この画面に直接移動して削除すると、エラーが表示されないことがわかりました。しかし、この画面に移動して戻ってから、この画面に戻って削除すると、エラーが表示されます。画面を 10 回読み込むと、このような (30) エラーが発生します。

私の推測では、ポップルートをダッシュ​​ボードに戻すときにfirebase接続を閉じていないということです。または、使用しているナビゲーターがシーンを正しくアンロードしていません。または、deleteRow() 関数に何か問題があります

他にできることは本当にありません.同じ質問がウェブ全体にありますが、私のシナリオには当てはまらないようです。

0 投票する
1 に答える
364 参照

user-interface - Autoit GUI で編集コントロールを表示または非表示にする

ラジオボタンがチェックされているかどうかに応じて、編集コントロールを表示または非表示にしたい.次のAutoitコードは意味的には問題ないように見えますが、機能していません. ありがとう

0 投票する
1 に答える
1205 参照

reactjs - React.Component setState アトミック更新

https://facebook.github.io/react/docs/react-component.html#setstate

シグネチャ function(state, props) => newState で関数を渡すことも可能です。これにより、値を設定する前に state と props の以前の値を参照するアトミックな更新がキューに入れられます。たとえば、state の値を props.step でインクリメントしたいとします。

ここでのアトミック更新とはどういう意味ですか? JavaScript はシングルスレッド言語ではありませんか? これは、すべての更新がアトミックにバインドされていることを意味しますか?

0 投票する
2 に答える
25756 参照

reactjs - js状態配列に反応する新しいキー値を追加するには?

新しいキー値を配列に追加したいですか? 以下、やりたいことを言います。どうやってやるの?1. consruture メソッドで状態を開始する

  1. アクティブなファイルで状態を設定した後

    this.setState({ファイル: activeFiles})

  2. 私の状態を選別する

    { files: [ { key1: val1, key2: val2, key3: val3 }, { key1: val1, key2: val2, key3: val3 }, { key1: val1, key2: val2, key3: val3 } ] }

  3. 各ファイルに新しいキー値を追加する方法は? 私が望む状態

    { files: [ { key1: val1, key2: val2, key3: val3, key4: val4 }, { key1: val1, key2: val2, key3: val3, key4: val4 }, { key1: val1, key2: val2, key3: val3, key4: val4 } ] }