#flutter #dart
#flutter #dart
Вопрос:
Я поиграл с функциями и попытался создать новый виджет:
newWidget(Function onTap){
return InkWell(
...
onTap: () => onTap
);
}
Когда я попытался его использовать, я обнаружил, что предоставление onTap как onTap: () => onTap,
и использование его как onTap: () => onTap(),
выполняется по-разному. И есть другие способы использовать свойство onTap.
Так в чем разница между:
onTap: () => onTap
onTap: () => onTap()
onTap: onTap()
Ответ №1:
onTap: () => func
Это указывает виджету на функцию func и сообщает ему запускать ее при нажатии. Например, вы даете ему адрес функции и говорите ему перейти туда, если кто-то нажмет.
onTap: () => func()
onTap: func()
Эти два в основном выполняют одно и то же и присваивают свойству onTap значение, возвращаемое из функции func(). Эти, однако, принимают onTap по адресу вместо того, чтобы указывать на него. Они будут запущены сразу после завершения сборки.
Вы можете просто вызвать onTap: func
, если вам не нужно передавать ему какие-либо параметры.
В противном случае вызовите onTap: (param1, param2, ...) => func(param1, param2, ...)
Ответ №2:
Вы также можете использовать его как:
onTap: funcationName //with out brackets