【发布时间】:2020-08-31 13:01:19
【问题描述】:
您好,我正在尝试将信息从它所在的构造函数传递给小部件..
但它返回错误:
'在初始化器中只能访问静态成员'。
在这一行返回错误:
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(
【问题讨论】:
-
你能发布你的“上传”代码吗?
-
好的... ..........
标签: flutter dart mobile widget flutter-layout