簡體   English   中英

我想要的值通過值而不是 Flutter 中的引用傳遞給 function。 如何避免這種情況?

[英]The value I want is passed to the function by value rather than reference in Flutter. How to avoid this?

在我的 class 我有以下 class 變量,

  Image? _pickedFrontImage;
  Image? _pickedBackImage;

然后我有下面的 class 方法,

  void _setPickedImage(String path, Image? image) => setState(     <------ Pay attention to the image parameter
        () => image = Image.file(
          File(path),
          fit: BoxFit.cover,
        ),
      );

這個 function 中的圖像參數將接收我在上面聲明的兩個變量中的一個。
但是,在執行 function 時,我認為我的 state 不會改變。 原因是,當我傳遞_pickedFrontImage_pickedBackImage時,它們按值傳遞給 function。 (不是參考)。

我想通過引用將這些 arguments 傳遞給 function。 不是按價值。 這個怎么做?

我還遇到了這個 stackoverflow 鏈接,它提到了如何為原語做這件事。 但我不是在這里處理一個原始的。 我正在使用 Image 類型的變量? . 有人可以幫忙嗎? 謝謝。

好吧,為了正確使用術語,您已經通過引用傳遞了它。 沒有制作圖像 object 的副本。

但是您不想只更改給定的 object 並使更改生效,您想替換整個 object。 這只有在您通過引用... by reference時才有效。

只返回您想要的圖像 object 並處理返回值可能更容易。 讓 function 做一件事(選擇圖像)並在呼叫站點處理您的 state。

暫無
暫無

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

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