代码之家  ›  专栏  ›  技术社区  ›  Malak

从控制器颤振分配变量值

  •  0
  • Malak  · 技术社区  · 5 年前

    好吧,我们有布顿,每次他被推的时候,他都会减少var_gracze,如果_gracze<=0我想让他从控制器那里获取价值 格拉茨康 而不是 _格拉茨 .我不知道如何从控制器中获取价值并将其放入 _格拉茨 (SecGamePage和FirGamePage是一回事)。请帮忙:c

    class ZmienneClass extends ChangeNotifier {
      var _gracze;
      var _rundy;
    
      int get iloscGraczy {
        return _gracze;
      }
    
      void decrementCounter(int number) {
        _gracze -= 1;
          if (_gracze <= 1) {
            _gracze = liczbagraczy;
          }
        }
      }
    }
    
    class _InfoPageState extends State<InfoPage> {[![InfoPage, graczeCon][1]][1]
      TextEditingController graczeCon = TextEditingController();
      TextEditingController rundyCon = TextEditingController();
    
      int liczbagraczy = 10; //here should be value from graczeCon
    
      @override
      Widget build(BuildContext context) {
        return MultiProvider(
            providers: [ChangeNotifierProvider.value(value: ZmienneClass())],
            child: Scaffold(
                backgroundColor: const Color.fromARGB(255, 84, 84, 84),
                appBar: AppBar(
                  toolbarHeight: 70,]))
                body: Stack(children: [
                  Column(
                    children: [
                      Center(
                        child: SizedBox(
                          child: TextFormField(
                            onChanged: (gracze) {},
                            controller: graczeCon,
                        )))])
                  Align(
                    child: TextButton(
                      onPressed: () {
                        Provider.of<ZmienneClass>(context, listen: false)
                            .setPlayerCount(
                                liczbagraczy: int.parse(graczeCon.text));
    
                        Navigator.push(context,
                            MaterialPageRoute(builder: (context) => FirGamePage()));
                      })];
      }
    }
    
    class _FirGamePageState extends State<FirGamePage> {
    
    
      @override
      Widget build(BuildContext context) {
        var _gracze = Provider.of<ZmienneClass>(context).iloscGraczy;
        return Scaffold(...
            Align(
              alignment: Alignment.topLeft,
              child: Text("Osoby: $_gracze",
            )))
    }
    
    0 回复  |  直到 5 年前
        1
  •  1
  •   heyom    5 年前

    试试这些: 1.

    graczeCon.text.toString()
    
    graczeCon.value.toString()
    

    在这里,第一个解决方案应该是有效的,因为在我的情况下,它是有效的。

        2
  •  1
  •   SUDESH KUMARA    5 年前

    试试这个。

      void decrementCounter(int number) {
        _gracze -= number;
        _gracze = _gracze <= 1 ? graczeCon.text ?? '' : liczbagraczy;
      }
    

    另外,请记住, 格拉茨康。文本 是一个字符串值。所以你可以随心所欲地处理它。