我们如何从Flutter中的自定义小部件中获取价值

时间:2020-04-15 08:59:53

标签: flutter

我想从TextBox类访问其他dart文件中的文本值,该怎么做?

我已经给出了下面的代码

import 'package:flutter/material.dart';

class TextBox extends StatelessWidget {
  final String hint;
  final String text;
  TextBox({this.hint});
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.symmetric(vertical: 0.0,horizontal: 10.0),
      child: TextField(
        decoration: InputDecoration(
          hintText: hint,
          contentPadding: EdgeInsets.symmetric(vertical: 10.0,horizontal: 10.0),
          border: OutlineInputBorder(
            borderRadius: BorderRadius.circular(32.0),
          ),
        ),
        onChanged: (value){
          text=value;
          return text;
        },
      ),
    );
  }
}

2 个答案:

答案 0 :(得分:0)

在类内部创建一个函数,例如:

void _didPushButton() {
  Navigator.pushNamed(context, '/newRoute', arguments:<String>{'varName':value});
}

varName是另一个dart文件中的必需参数。

答案 1 :(得分:0)

您需要考虑state management。目前,您的TextBox小部件没有任何状态。

有多种方法可以执行此操作,您可以检查state management in Flutter进行概述。

通常来说(实际的实现很大程度上取决于最终选择的内容),您想要“提升状态”。

引用文档中的内容:

In Flutter, it makes sense to keep the state above the widgets that use it.