收到以下錯誤,不知道如何更新代碼來解決它。
錯誤:不能使用“函式”型別的運算式?作為一個函式,因為它可能為空。
- “函式”來自“dart:core”。嘗試使用 ?.call 進行呼叫。PageName nextPage = pageName_pageFunction_mapPageName.welcomePage; PageName nextPage2 = pageName_pageFunction_mapnextPage;
編碼:
enum PageName {
welcomePage,
register,
login,
editProfile,
showProfile,
resetPassword,
errorUserExists,
}
Map<PageName, Function> pageName_pageFunction_map = {
PageName.welcomePage: showWelcomePage,
PageName.register: showRegisterPage,
PageName.login: showLoginPage,
PageName.editProfile: showEditProfile,
PageName.showProfile: showUserProfile,
PageName.resetPassword: showResetPassword,
PageName.errorUserExists: showErrorUserExists,
};
void main() {
PageName nextPage = pageName_pageFunction_map[PageName.welcomePage]();
if (nextPage != null) {
while (true) {
PageName nextPage2 = pageName_pageFunction_map[nextPage]();
if (nextPage2 != null) {
nextPage = nextPage2;
}
}
}
}
你能幫助我嗎?謝謝
uj5u.com熱心網友回復:
錯誤訊息告訴你不能執行一個函式,因為這個函式可能是空的,如果你對空值執行一個函式,它會破壞程式。你有兩個解決方案:
首先,您可以通過測驗確保您的函式不為空:
if (myFunction != null) {
myFunction()
}
或者您可以使用!運算子告訴編譯器您的函式不為空
myFunction!()
uj5u.com熱心網友回復:
錯誤:不能使用“函式”型別的運算式?作為一個函式,因為它可能為空。
當你從地圖中查找你的一個函式時,就像pageName_pageFunction_map[PageName.welcomePage]你得到一個 type 的值一樣Function?。這是因為如果您輸入一個沒有相應值的鍵,您將從運算式中回傳 null。
以下錯誤訊息為您提供了有關如何解決此問題的建議。
“函式”來自“dart:core”。嘗試使用 ?.call 進行呼叫。PageName nextPage = pageName_pageFunction_mapPageName.welcomePage; PageName nextPage2 = pageName_pageFunction_mapnextPage;
您可以?.call直接放置在引數串列之前()以安全地呼叫函式;
pageName_pageFunction_map[PageName.welcomePage]?.call();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364082.html
上一篇:Flutter錯誤:引數型別'DocumentSnapshot<Object?>?不能分配給引數'DocumentSnapshot<Object?>
