簡體   English   中英

如何在Flutter中訪問父級中的子控件的數據?

[英]How to access data of child widget in parent in flutter?

我想僅在我想知道父小部件中的子(或子小部件)小部件中某個字段的值時才知道。
在這種情況下,使用CallbackInheritedWidget / Provider無效,因為每次子項值發生變化時,它都會向我提供信息。 當父母中有一個動作時,我只要求孩子的價值。 因此,傾聽所有更改是一項開銷。
另一種選擇是使用密鑰從子級中獲取信息,但是子級可以是多個子級,因此必須創建那么多密鑰,並以某種方式將其附加到子級上。 而且鑰匙有點貴。
另一種選擇是存儲孩子的實例並從中獲取價值。

對於一個簡單的任務,每個選項都顯得有些過分。 我贊成關鍵方法,因為它給人一種感覺,它們是針對此類情況創建的。 有誰對這種情況有更好的了解?

一個簡單的用例是:
想象一個父母在中間有一個PageView,還有一個下一個按鈕。 中間的頁面包含一個可更改其值的滑塊。 當我們按下一步時,我們想知道滑塊的最終值是多少。

為什么看起來如此困難是有原因的:您不應該這樣。

窗口小部件有目的地非常有限地強制執行單向數據流,這對於大型應用程序的可維護性至關重要。

而不是讀取子孫的狀態,您應該通過繼承的小部件和類似的模式來“提升狀態”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM