微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

我希望能够访问另一个文件中的数组(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 举报,一经查实,本站将立刻删除。