no_logic_in_create_state
不要在 createState 中放入任何邏輯。
詳細資訊
#**請勿** 在 createState()
中放入任何邏輯。
createState()
的實作應回傳 State 物件的新實例,且不應執行其他操作。由於偏好透過 widget
欄位存取 state,因此也應避免使用自訂建構子參數將資料傳遞至 State 物件,進而要求 State 建構子不得傳遞任何引數。
不良範例
dart
MyState global;
class MyStateful extends StatefulWidget {
@override
MyState createState() {
global = MyState();
return global;
}
}
dart
class MyStateful extends StatefulWidget {
@override
MyState createState() => MyState()..field = 42;
}
dart
class MyStateful extends StatefulWidget {
@override
MyState createState() => MyState(42);
}
良好範例
dart
class MyStateful extends StatefulWidget {
@override
MyState createState() {
return MyState();
}
}
啟用
#若要啟用 no_logic_in_create_state
規則,請在您的 analysis_options.yaml
檔案中,於 **linter > rules** 下新增 no_logic_in_create_state
analysis_options.yaml
yaml
linter:
rules:
- no_logic_in_create_state
如果您改用 YAML map 語法來設定 linter 規則,請在 **linter > rules** 下新增 no_logic_in_create_state: true
analysis_options.yaml
yaml
linter:
rules:
no_logic_in_create_state: true
除非另有說明,否則本網站文件反映 Dart 3.7.1 版本。頁面最後更新於 2025-03-07。 檢視原始碼 或 回報問題。