首页 > 解决方案 > 仅将指定的可选参数传递给底层小部件

问题描述

假设我有一个简单的函数,它接受一个 svg 图像的 URL 并返回一个小部件:

Widget loadImage(String url, { height, width }) {
  // Wrap URL in an SvgPicture and return
  return SvgPicture.network(url)
}

我想仅在定义widthheight参数SvgPicture 时才应用它们。像这样的东西(尽管这显然会导致语法错误):

Widget loadImage(String url, { height, width }) {
  // Wrap URL in an SvgPicture and return
  return SvgPicture.network(
    url,
    if(height) height : height, // <-- 
    if(width) width : width, // <-- 
  )
}

我该怎么做呢?

标签: flutterdart

解决方案


如果参数是可选的,则意味着它可以为空。为此,接收函数应确保它是否为空。

所以,你可以简单地使用

Widget loadImage(String url, {double height,double width }) {
  return SvgPicture.network(
        url,
        height: height,
        width: width
      )
}

推荐阅读