メール入力のリストを追加する機能を実装しようとしていますが、ユーザーです。これは私がこれまでに持っているものです
List<String> _notificationEmails =[];
var _notificationEmailsController = TextEditingController();
Widget _buildNotificationEmailsInput() {
return TextFormField(
controller: _notificationEmailsController,
style: inputTextStyle,
maxLines: null,
validator: (String value) {
print(value);
if (value.isEmpty) {
return 'Emails Required';
}
return null;
},
onChanged: (String value){
if(value.substring(value.length-1)==','){
print('here');
setState(() {
_notificationEmails.add(value.substring(0,value.length-1));
});
_notificationEmailsController.clear();
}
print(_notificationEmails);
},
);
}
私の意図した結果は、ユーザーが電子メールを入力し、その後にカンマを追加すると、電子メールがリストに追加され、入力フィールドがクリアされますが、アクションのループが発生し _notificationEmails.add(value.substring(0,value.length-1));
て無限に実行されることです。
ここにログがあります
[ +3 ms] flutter: [je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gmail.com, je@gm<…>
これは延々と続く。私は何を間違えましたか?
アップデート
それが役立つ場合は、が呼び出されるたびにループ_notificationEmailsController.clear();
がトリガーされるため、問題が発生することに気付きました。onChange()