Flutter: StatelessWidget을 사용하여 상황에 맞게 사용

Si quieres evitar tener funciones que vayan pasando el contexto por parametro de un lado a otro, aquí te tengo una solución que podría facilitarte un poco las cosas.

바모스 알 그라노...

빌더 패턴에 대한 기본 개념입니다. Este patrón Consiste en darle la responsabilidad de construir la instacia que estamos buscando a otra entidad (otra clase en el caso de flutter).

En este ejemplo usaremos un widget simple de botton que tieene dos proiedades.
La magia está en el metodo build , que únicamente está retornando al ButtonBuilder .

class Button extends StatelessWidget {
  const Button.text({
    Key? key,
    this.text = '',
    this.onPressed,
  }) : super(key: key);

  final String text;
  final VoidCallback? onPressed;

  @override
  Widget build(BuildContext context) {
    return ButtonBuilder(context, this).build();
  }
}


라 마기아 델 빌더



버튼 빌더에 대한 전망이 매우 중요합니다.

Dentro de esta clase encontraremos el contexto y el widget como propiedades. 위젯과 다양한 메토도스에 대한 설정, 위젯에 대한 추가 설정, 위젯 설정에 대한 추가 설정

class ButtonBuilder {
  ButtonBuilder(this.context, this.widget);

  final BuildContext context;
  final Button widget;

  Widget get text {
    // Context can be used from any getter or method
    final primaryColor = Theme.of(context).primaryColor; 
    return const Text(widget.text, style: TextStyle(color: primaryColor));
  }

  Widget get icon {
    final secondaryColor = Theme.of(context).secondaryColor;
    return Icon(Icons.home, color: secondaryColor); 
  }

  Widget build() {
    return GestureDetector(
      // Widget can be accessed similar to StatefulWidget
      onTap: widget.onPressed,
      child: Column(
        children: [
          text,
          icon,
        ]
      ),
    );
  }
}


위젯에 대한 정의를 내리기 위해서는 위젯이 필요하지 않습니다. 법률에 따라 구분할 수 있는 정의와 구성 요소를 구분할 수 있습니다.

Adicionalmente, en caso dejes el Builder en el mismo archivo podría quedar como una clase privada de esta manera _ButtonBuilder .

Dejo el enlace alGist 완료를 완료하십시오.


Desde hace mucho me ha llamado la atención Dart como lenguaje y estoy tratando de sacarle el máximo provecho en mi aprendizaje con Flutter. Así que tienes alguna pregunta o un tema a tocar no duds en dejarlo en los comentarios.

아니 olvides que la práctica hace al maestro. 무하스 그라시아스 포 리르.

좋은 웹페이지 즐겨찾기