Значение по умолчанию необязательного параметра должно быть постоянным.
Это то, что говорится в документах
Эту вещь можно обойти следующим образом:
dynamic myCallback(int a,String b) {
}
void myFunction({int input = 1, Function(int, String) callback }) {
if (callback == null) callback = myCallback;
}
Изменить:
В качестве альтернативы вы можете использовать функцию анонима без функции myCallback
, например:
void myFunction({int input = 1, Function(int, String) callback }) {
if (callback == null) callback = (a,b){};
}