問題タブ [environmentobject]

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 に答える
485 参照

swift - タイプ「TaskElement」の値を予期される引数タイプ「EnvironmentObject」に変換できません'

TaskElement モデルを environmentObject に設定して、タスクを編集できるようにしました。同じページでタスクを編集して新しいタスクを作成できるのが気に入りました。これは NewTaskView と呼ばれます。ところで、この NewTaskView_Previews でもエラーが発生しますが、以下の 2 つのエラーの理由を理解できれば、自分で解決できると思います。

しかし、この変更を行うと、次のエラーが発生しました。

事前に助けてくれてありがとう。プロジェクト全体を見たい場合は、https://github.com/m3rtkoksal/TaskManagerにアクセスしてください。

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

swift - SwiftUI は onReceive がロード時に起動するのを防ぎます

受信しようとしている変数が @EnvironmentObject の @Published プロパティである場合、ビューが最初にロードされるときに onReceive が起動しないようにする方法はありますか?

ビューは次のとおりです。

環境オブジェクトは次のとおりです。

そして出力:

環境オブジェクトが注入されたときに最初のものが起動されると思います。これを防ぐ方法はありますか (onAppear で設定したハックなブール以外)? 理想的には、"Hello from onReceive: World" だけを見たいと思います。これは単純な例です。実際のアプリでは、onAppear のサービスからデータをフェッチしています。環境オブジェクトでは、クリアすると onReceive を起動して他のロジックを実行し、再フェッチするというエラー状態があります。