flutter - 如何为此示例编写多个条件。我收到一条错误消息,指出字符串为空

Text("开始 date: ${_selectedDateRange?.start.toString().split(' ')[0]}!==null "按下按钮显示选择器")

我收到一条错误消息,指出字符串为空。我是 flutter 的新手,如果 _selectedDateRange?.start 为空,它应该给数据按下按钮以显示选择器,否则保持相同的数据......我坚持下去。请帮我

回答1

您可以在函数中设置它以获得更高的可读性或获取器,即

String _displayText() {
  if (_selectedDateRange?.start != null) {
    return 'Start date: ${_selectedDateRange?.start.toString().split(' ')[0]}';
  } else {
    return 'Press the button to show the picker';
  }
}

或者

String get _displayText {
  if (_selectedDateRange?.start != null) {
    return 'Start date: ${_selectedDateRange?.start.toString().split(' ')[0]}';
  } else {
    return 'Press the button to show the picker';
  }
}

并将其传递给您的文本小部件

Text(_displayText()) // function
Text(_displayText) // getter

用于重用函数

String _displayText(String begin,DateTime? date) {
  if (date != null) {
    return '$begin date: ${date.toString().split(' ')[0]}';
  } else {
    return 'Press the button to show the picker';
  }
}

像这样使用它

Text(_displayText('end',_selectedDateRange?.end)) // function