0

在我的课堂上,我有以下类变量,

  Image? _pickedFrontImage;
  Image? _pickedBackImage;

然后我有下面的类方法,

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

此函数中的图像参数将接收我在上面声明的两个变量中的任何一个。
但是,在执行该函数时,我认为我的状态不会改变。这样做的原因是,当我传递_pickedFrontImageor时_pickedBackImage,它们会按值传递给函数。(不是参考)。

我想通过引用将这些参数传递给函数。不是按价值。这个怎么做?

我还遇到了这个 stackoverflow 链接,它提到了如何为原语做这件事。但我不是在这里处理一个原始的。我正在使用 Image 类型的变量?. 有人可以帮忙吗?谢谢。

4

1 回答 1

0

好吧,为了正确使用术语,您已经通过引用传递了它。没有创建 Image 对象的副本。

但是您不想只更改给定的对象并使更改生效,您想替换整个对象。这只有在您通过引用... by reference时才有效。

只返回所需的 Image 对象并处理返回值可能更容易。让函数做一件事(选择图像)并在调用站点处理您的状态。

于 2021-12-07T11:50:49.647 回答