从另一个有状态小部件中的一个有状态小部件获取可变数据

问题描述

从另一个有状态小部件中的一个有状态小部件获取变量数据,它们彼此之间没有关系(它们既不是孩子也不是父母)

我希望能够访问另一个文件中的数组(posts)...您可以在代码中查看注释以获取更多信息

我有这个stateful小部件


    import 'package:Flutter/material.dart';
    
    import 'package:saviortv/modules/fetchPosts.dart';
    import 'package:saviortv/ui/BuildPost.dart';
    
    class Home extends StatefulWidget {
      @override
      _HomeState createState() => _HomeState();
    }
    
    class _HomeState extends State<Home> {
      @override
      Widget build(BuildContext context) {
        return ListView.builder(
          itemCount: posts == null ? 0 : posts.length,// <== here posts is undefined because it doesn't exist as I want to get it from the other file (See below)
          itemBuilder: (BuildContext context,int index) {
            return buildPost(context,posts,index); //Building the posts list view
          },);
      }
    }

一个Stateful小部件


class FetchPosts extends StatefulWidget {
  FetchPosts({Key key,this.pageNumber = 1}) : super(key: key);
  final int pageNumber;

  @override
  _FetchPostsstate createState() => _FetchPostsstate(pageNumber);
}

class _FetchPostsstate extends State<FetchPosts> {
  _FetchPostsstate(this.pageNumber);
  int pageNumber;
  List<wp.Post> posts = []; //<== I want this to be useable in the other file;

  Future<String> getPosts() async {
    var res = await fetchPosts(pageNumber);
    print(pageNumber);
    setState(() {
      posts = res;
    });
    return "Success!";
  }

  // Get _ when app loads;
  @override
  void initState() {
    super.initState();
    this.getPosts();
  }

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

我该如何实现?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...