首页 > 解决方案 > 错误:“Widget”类型的值不能分配给“File”类型的变量

问题描述

'File _image' 在类 State 中声明,编码意味着在 Widget 主体中声明为 'null -> image'(同步?)。但这种编码是不合适的。我应该怎么办?

我什么都做不了。

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';

class CreatePage extends StatefulWidget {
..@override
...._CreatePageState createState() => _CreatePageState();
}

class _CreatePageState extends State<CreatePage> {
..final textEditingController = TextEditingController();
..File _image;
..@override
..void dispose() {
....textEditingController.dispose();
....super.dispose();
..}
..@override
..Widget build(BuildContext context) {
....return Scaffold(
......appBar: _buildAppBar(),
......body: _buildBody(),
......floatingActionButton: FloatingActionButton(onPressed: _getImage,
......child: Icon(Icons.add_a_photo),
....),
....);
..}

..Widget _buildAppBar() {
....return AppBar(
......actions: <Widget>[
........IconButton(
..........icon: Icon(Icons.send), onPressed: () {},
..)
..],
..);
..}

Widget _buildBody() {
..return SingleChildScrollView(
.....child: Column(
.....children: <Widget>[
_image = null ? Text('No image'): Image.file(_image), // problem coding
.....TextField(
.....decoration: InputDecoration(hintText: 'write context'),
.....controller: textEditingController,
..)
..],
..),
..);
..}

Future _getImage() async {
..File image = await ImagePicker.pickImage(source: ImageSource.gallery);
..setState(() {
.._image = image;
..});
..}
..}

我看到图像的选择,比如 instargram 的文字。

标签: flutterdart

解决方案


代替

_image = null ? Text('No image'): Image.file(_image), // problem coding

_image == null ? Text('No image'): Image.file(_image), // problem solved

推荐阅读