Как вернуть значение в функцию в виджет - PullRequest
0 голосов
/ 09 марта 2020

Мне нужна помощь, я новичок, чтобы трепетать. Я хочу получить возвращаемое значение String из моей функции и получить его в моем текстовом виджете. Это не мой настоящий код, но я хочу, чтобы он работал так. Кроме того, каждый раз, когда я нажимаю кнопку, значение String также изменяется в текстовом виджете. Спасибо

String textReturn(String value){
  String text = "value";
  return text.toString();
}


class SamplePage extends StatefulWidget {
  @override
  _SamplePageState createState() => _SamplePageState();
}

class _SamplePageState extends State<SamplePage> {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        child: Column(
          children: <Widget>[
            FlatButton(
              onPressed: (){
                textReturn("This is the value");
                }, 
              child: Text("Button")
              ),
              Text(
                textReturn
                )
          ],
        ),
      ),
    );
  }
}

1 Ответ

1 голос
/ 09 марта 2020

Вы можете легко сделать это с помощью state, и вам больше не понадобится возвращаемое значение вашей функции, так как установка состояния вызывает повторный рендеринг пользовательского интерфейса и отражает изменения значений на экране. Решение, как показано ниже:

import 'package:flutter/material.dart';

class SamplePage extends StatefulWidget {
 SamplePage();

@override
  _SamplePageState createState() => _SamplePageState();
}

class _SamplePageState extends State<SamplePage> {
String _sampleString;

void textReturn(String value) {
  String text = "value";

  setState(() {
   _sampleString = text;
  });
}

@override
Widget build(BuildContext context) {
 return Center(
   child: Container(
     child: Column(
       children: <Widget>[
         FlatButton(
           onPressed: () {
             textReturn("This is the value");
           },
           child: Text("Button"),
         ),
         Text(this._sampleString)
       ],
     ),
    ),
   );
  }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...