Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在初始化器错误中只能访问静态成员_Flutter_Dart_Mobile_Widget_Flutter Layout - Fatal编程技术网

Flutter 在初始化器错误中只能访问静态成员

Flutter 在初始化器错误中只能访问静态成员,flutter,dart,mobile,widget,flutter-layout,Flutter,Dart,Mobile,Widget,Flutter Layout,您好,我正在尝试将信息从构造函数传递到小部件中 但它返回错误: '在初始值设定项中只能访问静态成员' 此行返回错误: Upload(currentUsers: widget.currentUsers,), 求你了,我需要帮助 这是我的密码 import 'package:curved_navigation_bar/curved_navigation_bar.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutt

您好,我正在尝试将信息从构造函数传递到小部件中

但它返回错误:

'在初始值设定项中只能访问静态成员'

此行返回错误:

Upload(currentUsers: widget.currentUsers,),
求你了,我需要帮助

这是我的密码

import 'package:curved_navigation_bar/curved_navigation_bar.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:junk_stores/Curved4/Notifications.dart';
import 'package:junk_stores/Curved4/Payments.dart';
import 'package:junk_stores/Curved4/profilePage.dart';
import 'dart:ui' as ui;
import 'package:junk_stores/Curved4/homeScreen.dart';
import 'package:junk_stores/Curved4/uploadPage.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:junk_stores/models/user.dart';
import 'package:junk_stores/pages/home.dart';
import 'package:junk_stores/pages/search.dart';
import 'package:junk_stores/pages/upload.dart';



class BottomNavbar extends StatefulWidget {
 final User currentUsers;
  BottomNavbar({@required this.currentUsers}){
    print(currentUsers);
  }
  @override
  _BottomNavbarState createState() => _BottomNavbarState();
}



class _BottomNavbarState extends State<BottomNavbar> {
  int _currentIndex = 0;

  final List<Widget> _children = [
      HomeS(),
      Search(),
      Upload(currentUsers: widget.currentUsers,), // the error is here
      Notifications(),//trending and notifications page
      Profile(),
     ];

  void onTappedBar (int index) {
         setState(() {
            _currentIndex = index;
         });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: _children[_currentIndex],
      bottomNavigationBar: CurvedNavigationBar(
        color: Colors.white,
        onTap : onTappedBar,
        buttonBackgroundColor: Colors.white,
        backgroundColor: Colors.purple[400],
        animationCurve: Curves.ease,
        animationDuration: Duration(milliseconds: 700),
        index: 0,
        height: MediaQuery.of(context).size.height * 0.07407407,//52 pixels
        items: <Widget>[

           ShaderMask(
            blendMode: BlendMode.srcIn,
            shaderCallback: (Rect bounds) {
              return ui.Gradient.linear(
                Offset(4.0, 24.0),
                Offset(24.0, 4.0),
                [
                Colors.red[600],
                Colors.purple,
                ],
              );
            },
            child: Icon(
              FontAwesomeIcons.home,
              size: 24,

                 ),
           ),
           ShaderMask(
            blendMode: BlendMode.srcIn,
            shaderCallback: (Rect bounds) {
              return ui.Gradient.linear(
                Offset(4.0, 24.0),
                Offset(24.0, 4.0),
                [
                Colors.red[600],
                Colors.purple,
               ],
              );
            },
            child: Icon(
               FontAwesomeIcons.search,
              size: 24,
                 ),
          ),
          ShaderMask(
            blendMode: BlendMode.srcIn,
            shaderCallback: (Rect bounds) {
              return ui.Gradient.linear(
                Offset(4.0, 24.0),
                Offset(24.0, 4.0),
                [
                 Colors.red[600],
                Colors.purple,
               ],
              );
            },
            child: Icon(
              FontAwesomeIcons.plus,
              size: 24,
                 ),

         ),

         ShaderMask(
            blendMode: BlendMode.srcIn,
            shaderCallback: (Rect bounds) {
              return ui.Gradient.linear(
                Offset(4.0, 24.0),
                Offset(24.0, 4.0),
                [
                Colors.red[600],
                Colors.purple,
               ],
              );
            },
            child: Icon(
              Icons.trending_up,
              size: 29,
                 ),

         ),

         ShaderMask(
            blendMode: BlendMode.srcIn,
            shaderCallback: (Rect bounds) {
              return ui.Gradient.linear(
                Offset(4.0, 24.0),
                Offset(24.0, 4.0),
                [
               Colors.red[600],
                Colors.purple,
               ],
              );
            },
            child: Icon(
              FontAwesomeIcons.user,
              size: 24,
                 )

         )
        ],

      ),
    );
  }
}
我试图阅读其他解决方案,但我似乎不理解。我只想将构造函数中的信息传递给Upload小部件

这是我上传代码的顶部

class Upload extends StatefulWidget {
  final User currentUsers;
  Upload({@required this.currentUsers}){
    print(currentUsers);
  }
@override
  _UploadState createState() => _UploadState();
}
class _UploadState extends State<Upload> {


 buildSplashSreen(){
   return Scaffold(
     appBar: AppBar(
试着这样做:

MyWidgetcurrentUsers:someuser; 类MyWidget扩展了StatefulWidget{ 最终用户当前用户; constmywidget{Key Key,this.currentUsers}:superkey:Key; @凌驾 _MyWidgetState createState=>\u MyWidgetStatethis.currentUsers; } 类_MyWidgetState扩展状态{ 最终用户当前用户; _MyWidgetStatethis.currentUsers; @凌驾 小部件构建上下文上下文{ 返回容器 ; } }
在initstate之前,您无法访问widgetwidget.currentUsers

诸如此类:

class _BottomNavbarState extends State<BottomNavbar> {
  int _currentIndex = 0;

  List<Widget> _children;

  @override
  initState() {
   _children = [
      HomeS(),
      Search(),
      Upload(currentUsers: widget.currentUsers,),
      Notifications(),
      Profile(),
     ]
  }

 ...
}
或者像getter那样做

List<Widget> get _children => [
      HomeS(),
      Search(),
      Upload(currentUsers: widget.currentUsers,),
      Notifications(),
      Profile(),
     ];

你能发布上传代码吗?好的。。。。。。。。。嘿,MB,我真的不知道如何在我的代码中实现这一点。。你能用我的例子吗Hey axot。。我两个都试过了,但都不管用。。。当我将列表置于init状态时,我无法访问代码其余部分中需要itI的_子项。我在变量声明之前的final word中犯了一个错误。我编辑了它。您是否留下变量列表的声明\u子项;在初始化状态之前?