Flutter 方法';设置状态';isn';t为类型';pickImage';
我正在使用一个有状态的小部件,但在我的setState方法下不断出现红线,出现以下错误:Flutter 方法';设置状态';isn';t为类型';pickImage';,flutter,dart,Flutter,Dart,我正在使用一个有状态的小部件,但在我的setState方法下不断出现红线,出现以下错误: The method 'setState' isn't defined for the type 'pickImage'. 我的颤振版本: Flutter 2.0.4 • channel stable ImagePicker软件包版本: image_picker: ^0.7.4 代码如下: class pickImage extends StatefulWidget { final pic
The method 'setState' isn't defined for the type 'pickImage'.
我的颤振版本:
Flutter 2.0.4 • channel stable
ImagePicker软件包版本:
image_picker: ^0.7.4
代码如下:
class pickImage extends StatefulWidget {
final picker = ImagePicker();
Future getImage() async {
final pickedFile = await picker.getImage(source: ImageSource.camera);
setState(() { //Keep getting red line here(under setState)
if (pickedFile != null) {
_image = File(pickedFile.path);
} else {
print('No image selected.');
}
});
}
@override
_pickImageState createState() => _pickImageState();
}
class _pickImageState extends State<pickImage> {
@override
Widget build(BuildContext context) {
return AlertDialog(
);
}
}
class pickImage扩展StatefulWidget{
最终选择器=图像选择器();
Future getImage()异步{
final pickedFile=wait picker.getImage(来源:ImageSource.camera);
setState((){//在这里(setState下)保持红线
if(pickedFile!=null){
_image=文件(pickedFile.path);
}否则{
打印('未选择图像');
}
});
}
@凌驾
_pickImageState createState()=>\u pickImageState();
}
类_pickImageState扩展状态{
@凌驾
小部件构建(构建上下文){
返回警报对话框(
);
}
}
我在谷歌上搜索了这个问题,但仍然找不到合适的答案,这就是我来这里的原因。您需要将
getImage
移到\u pickImageState
内部
setState方法是State类的成员。不是StatefulWidget类
方法()是
状态
类的成员。不是StatefulWidget
类
这意味着您可以在从状态
派生的类中调用它,就像您的\u pickImageState
一样,但不能在不是的类中调用它。就像你的类pickImage
,你试图调用你的函数new
您应该能够将整个
getImage
方法移动到\u pickImageState
类中。但是为什么不支持它呢?@billalsaeed,因为setState
是在State
类中编写的函数。而\u pickImageState
扩展了状态
,因此只有此类可以调用设置状态
。