BuildContext 用于一个类

huangapple go评论73阅读模式
英文:

BuildContext for a class

问题

我是新手flutter开发者
我创建了一个可重用的Card类,但我不知道如何在这里为我的raisedButton构建上下文。请帮忙!

import 'package:flutter/material.dart';
import 'package:kebhips/Pages/TimeTablePage1.dart';

class ProgrammesDetails {
  final String id;
  final String name;
  final String time;
  final String description;
  final String image;
  final String picture;
  final RaisedButton raisedButton;

  ProgrammesDetails(
      {this.id,
      this.name,
      this.time,
      this.description,
      this.image,
      this.picture,
      this.raisedButton});
}

List<ProgrammesDetails> programmesDetails = [
  ProgrammesDetails(
      id: "1",
      name: "B T S",
      time: "Deux ans",
      description:
          "Le BTS (Brevet de Technicien Supérieur), est un diplôme national de l'enseignement supérieur qui se prépare en deux ans après le baccalauréat et qui ouvre la voie à plus de 50 spécialités dans différents secteurs. Le BTS est pensé pour favoriser une orientation professionnelle rapide sans fermer la porte à la poursuite des études. Sa particularité réside dans la nature professionnalisante de son contenu pédagogique et son enseignement pratique porté par de nombreuses semaines de stage en entreprise. Le BTS conduit à l'obtention d'un diplôme de niveau bac+2 reconnu par l'État. Sa validation ouvre naturellement les portes au marché de l'emploi.",
      image: "assets/img/mars.png",
      picture:
          "https://www.nasa.gov/sites/default/files/thumbnails/image/pia21723-16.jpg",
      raisedButton: RaisedButton(
          onPressed: () {
            Navigator.push(
                context,
                MaterialPageRoute(builder: (context) => TimeTablePage()));
          })),
];

[1]: https://i.stack.imgur.com/kPfQj.png
[2]: https://i.stack.imgur.com/E0cLk.png

https://github.com/rslimm/kelden.git
英文:

I'm new to flutter,
I created a class for a reusable Card, but I don't know how can build a context here for my raisedButton. Please Help !

BuildContext 用于一个类

BuildContext 用于一个类

import &#39;package:flutter/material.dart&#39;;
import &#39;package:kebhips/Pages/TimeTablePage1.dart&#39;;

   class ProgrammesDetails{
     final String id;
     final String name;
     final String time;
     final String description;
     final String image;
     final String picture;
     final RaisedButton raisedButton;

      ProgrammesDetails({this.id, this.name, this.time,
          this.description, this.image, this.picture, this.raisedButton});
        }


         List&lt;ProgrammesDetails&gt; programmesDetails = [
           ProgrammesDetails(
          id: &quot;1&quot;,
          name: &quot;B T S&quot;,
  time: &quot;Deux ans&quot;,
  description: &quot;Le BTS (Brevet de Technicien Sup&#233;rieur), est un dipl&#244;me national de l&#39;enseignement sup&#233;rieur qui se pr&#233;pare en deux ans ap&#232;s le baccalaur&#233;at et qui ouvre la voie &#224; plus de 50 sp&#233;cialit&#233;s dans diff&#233;rents secteurs. Le BTS est pens&#233; pour favoriser une orientation professionnelle rapide sans fermer la porte &#224; la poursuite des &#233;tudes. Sa particularit&#233; r&#233;side dans la nature professionnalisante de son contenu p&#233;dagoque et son enseignement pratique port&#233; par de nombreuses semaines de stage en entreprise. Le BTS conduit &#224; l&#39;btention d&#39;un dipl&#244;me de niveau bac+2 reconnu par l&#39;Etat. Sa validation ouvre naturellement les portes au march&#233; de l&#39;emploi.&quot;,
  image: &quot;assets/img/mars.png&quot;,
  picture: &quot;https://www.nasa.gov/sites/default/files/thumbnails/image/pia21723-16.jpg&quot;,
  raisedButton: RaisedButton(
      onPressed: (){
        Navigator.push(
            context,
            MaterialPageRoute(builder: (context) =&gt; TimeTablePage()));
      })
           ),

https://github.com/rslimm/kelden.git

答案1

得分: 1

你在做某些错误的事情,但要从任何方法中访问上下文,你可以使用StatefulWidget而不是StatelessWidget。

class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  ...
}

你可以从flutter文档了解更多关于使用StatefulWidget的信息。此外,还可以查看这个视频

英文:

You are doing something wrong, but to access context from any method you could use StatefulWidget instead of StatelessWidget.

class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() =&gt; _MyWidgetState();
}

class _MyWidgetState extends State&lt;MyWidget&gt; {
  ...
}

You can read more about using StatefulWidget from flutter docs.
Also, check out this video.

答案2

得分: 0

Context is captured from Widget build(BuildContext context)

需要实现它是一个Stateless(无状态)还是Stateful(有状态)的小部件

供参考
https://api.flutter.dev/flutter/widgets/BuildContext-class.html

https://flutter.dev/docs/development/ui/interactive

英文:

Context is captured from
Widget build(BuildContext context)

Need to implement whether it’s Stateless or Stateful widget

For reference
https://api.flutter.dev/flutter/widgets/BuildContext-class.html

https://flutter.dev/docs/development/ui/interactive

huangapple
  • 本文由 发表于 2020年1月6日 19:48:06
  • 转载请务必保留本文链接:https://go.coder-hub.com/59611581.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定