我想从同一个 dart.file 中的另一个类中调用基于函数的小部件中的值到 Text 小部件中

Posted

技术标签:

【中文标题】我想从同一个 dart.file 中的另一个类中调用基于函数的小部件中的值到 Text 小部件中【英文标题】:I wanna call a value from function based widget from another class in the same dart.file into a Text widget 【发布时间】:2022-01-16 16:21:46 【问题描述】:

我有一个名为 VarianKemasan 的类,它有一个名为 totalBelanjaKemasan 的函数

class VarianKemasan extends StatefulWidget 
  final productDetail;

  const VarianKemasan(Key? key, this.productDetail) : super(key: key);

  @override
  _VarianKemasanState createState() => _VarianKemasanState();


class _VarianKemasanState extends State<VarianKemasan> 

totalBelanjaKemasan() 
    Text(
        "$GlobalFunctions().rupiah(widget.productDetail['price'] * _parseCounter())");
    

并且想将函数的值调用到另一个类中的 Text 小部件中

class ProductDetailPage extends StatefulWidget 
  final productDetail;

  const ProductDetailPage(Key? key, this.productDetail) : super(key: key);

  @override
  _ProductDetailPageState createState() => _ProductDetailPageState();


class _ProductDetailPageState extends State<ProductDetailPage> 
@override
  Widget build(BuildContext context) 
return Scaffold(
      backgroundColor: Color(0xFFFFFFFF),
      body: Container(
             child: Text(
                    "called value here",
                    style: TextStyle(
                        fontSize: 18,
                        fontWeight: FontWeight.w500,
                        color: Color(0xff31708F)),
                    )

我该怎么做?

【问题讨论】:

【参考方案1】:

试试下面的代码希望它对你有帮助。参考我的答案here 和here 也用于widget.productDetail

您的 VarianKemasan 课程:

class VarianKemasan extends StatefulWidget 
  final product = 'Product Data';

  @override
  _VarianKemasanState createState() => _VarianKemasanState();


class _VarianKemasanState extends State<VarianKemasan> 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: const Text("App Bar"),
      ),
      body: Center(
        child: Container(
          child: TextButton(
            onPressed: () => Navigator.push(
              context,
              MaterialPageRoute(
                builder: (context) => ProductDetailPage(
                  productDetail: widget.product,
                ),
              ),
            ),
            child: Text(
              'Ok',
            ),
          ),
        ),
      ),
    );
  

你的ProductDetailPage 班级

class ProductDetailPage extends StatefulWidget 
  final productDetail;
  ProductDetailPage(
    Key? key,
    required this.productDetail,
  ) : super(
          key: key,
        );

  @override
  _ProductDetailPageState createState() => _ProductDetailPageState();


class _ProductDetailPageState extends State<ProductDetailPage> 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: const Text("App Bar"),
      ),
      body: Center(
        child: Container(
          child: Text(
            widget.productDetail,
            style: TextStyle(
                fontSize: 18,
                fontWeight: FontWeight.w500,
                color: Color(0xff31708F)),
          ),
        ),
      ),
    );
  

【讨论】:

抱歉,没用。 你到底想要什么 我想将 VarianKemasan 类中的值调用为 ProductDetailPage 类中的 Text 你好@AdhityaResadikara 请检查我的更新答案

以上是关于我想从同一个 dart.file 中的另一个类中调用基于函数的小部件中的值到 Text 小部件中的主要内容,如果未能解决你的问题,请参考以下文章

如何使静态类中的所有方法在c#中的另一个静态类中可用

如何访问和更改在 FLUTTER/DART 的另一个类中声明的字符串变量的值

我想从另一个反应原生的一个类中更改一个静态数组

在 C++ 中从同一类中的另一个方法调用方法

如何从同一类中的另一个方法检索最后插入的 id?

链接到 React 中的另一个页面