Как получить идентификатор из StatefulWidget в штате? - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу загрузить комментарии в своем посте здесь . Для этого мне нужно отправить идентификатор сообщения в мой HTTP-запрос на получение. post id Я отправил с другой страницы . но я хочу присвоить это String id; значение final response = await http.get("http://$ip:$apiPort/solutions/$id"); здесь id в Flutter .

Как я могу это сделать?

, чтобы очистить то, что я хочу

мой код

class Solutions  extends StatefulWidget {
  String id ;
  final bool isEditMode;

  Solutions({
    this.id,
    this.isEditMode,
  });
  @override
  _SolutionsState createState() => _SolutionsState();
}

class _SolutionsState extends State<Solutions> {
 List data;
 var ip = Configuration.yourIp;
 var apiPort = Configuration.yourApiPort;

    Future<List> getData() async {
    final response = await http.get("http://$ip:$apiPort/solutions/$id");
    return json.decode(response.body);
  }
  @override
  void initState() { 
    super.initState();
     this.getData();
  }
  @override
  Widget build(BuildContext context) {

    return Scaffold(

1 Ответ

1 голос
/ 24 апреля 2020
  Future<List> getData() async {
    final response = await http.get("http://$ip:$apiPort/solutions/${widget.id}");
    return json.decode(response.body);
  }

Это должно сработать.

Из класса State (_SolutionState в вашем случае) вы можете получить доступ к элементам виджета (Solution в вашем случае), найдя их в widget.

БОНУС Ваш id должен быть final, поскольку StatefulWidget помечен как класс immutable, что означает, что все его члены должны быть final. У вас наверняка есть предупреждение об этом из вашей IDE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...