在有状态小部件中,当参数变为空时如何弹出小部件?

问题描述 投票:0回答:1

假设

ManageBookingPage
小部件需要一个名为
trip
的对象作为参数。但是这个小部件能够修改接收到的参数,使其变为 null
(trip = null)

trip
变为空时,我想将这个小部件从树中弹出。实现这一目标的最佳方法是什么?

class ManageBookingPage extends StatefulWidget {
  const ManageBookingPage({
    super.key,
    required this.trip,
  });

  final BusTrip trip;

  @override
  State<ManageBookingPage> createState() => _ManageBookingPageState();
}

class _ManageBookingPageState extends State<ManageBookingPage> {
  @override
  Widget build(BuildContext context) {
    return SizedBox(
      child: Text(widget.trip.date.toString()),
    );
}
flutter dart
1个回答
0
投票

您可以使用 Offstage Widget 来实现此目的。

import 'package:flutter/material.dart';

class ManageBookingPage extends StatefulWidget {
  const ManageBookingPage({
    super.key,
    required this.trip,
  });

  final BusTrip trip;

  @override
  State<ManageBookingPage> createState() => _ManageBookingPageState();
}

class _ManageBookingPageState extends State<ManageBookingPage> {
  @override
  Widget build(BuildContext context) {
    return Offstage(
      offstage: trip == null,
      child: SizedBox(
        child: Text(widget.trip.date.toString()),
      ),
    );
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.