您好,我试图将信息从其所在的构造函数传递到窗口小部件中。
但是它返回错误:
'只能在初始化程序中访问静态成员。
此行返回错误:
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 Widget。 ................................................... ...................
这是我的上载代码的顶部。
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(
您好,我试图将信息从其所在的构造函数传递到窗口小部件中。但是它返回错误:'只能在初始化程序中访问静态成员'。在此上返回错误...
尝试这样: