我正在過濾一個串列,如下所示:
return Container(
child: FutureBuilder(
future: fetchCremas(),
builder: (context, snapshot) {
if (snapshot.hasData) {
var filteredList = snapshot.data;
filteredList = filteredList
.where((element) => (element.nombre
.toLowerCase()
.contains(
_controller.text.toLowerCase())
|| element.descripcion.toLowerCase().contains(
_controller.text.toLowerCase())
|| element.sub_cat_nombre.toLowerCase().contains(
_controller.text.toLowerCase())
|| element.sub_cat2_nombre.toLowerCase().contains(
_controller.text.toLowerCase())
|| element.sub_cat3_nombre.toLowerCase().contains(
_controller.text.toLowerCase())
))
.toList();
問題是 element.sub_cat3_nombre 可能為空或 null。
使用此代碼我收到錯誤
The method 'toLowerCase' was called on null.
Receiver: null
Tried calling: toLowerCase()
考慮到它可能為空或為空,我如何繼續過濾 element.sub_cat3_nombre?
uj5u.com熱心網友回復:
某些值是 Nullable String 而不是 String
從沒有 Nullable 的后端回傳 String 處理它,以避免額外的強制轉換或檢查 null
uj5u.com熱心網友回復:
這應該有效:
element.sub_cat3_nombre?.toLowerCase()
uj5u.com熱心網友回復:
你能試試這個嗎?
filteredList.where((element) => (element.nombre?.toLowerCase() ?? here put replacement object
或者您可以if(element.nombre != null)在開始過濾之前使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/430826.html
上一篇:flutter引數型別'List<dynamic>'can'tbeassignedtotheparametertype'List<Widget
