Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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 颤振状态变化 class\u EventAdminEditState扩展状态{ @凌驾 小部件构建(构建上下文){ 字符串imageURL=widget.ccaDocument['Image']; 最终全局键=全局键(); 最终文本编辑控制器imageURLController=新文本编辑控制器(); imageURLController.text=imageURL; void\u publishEvent()异步{ 打印(imageURL); widget.ccaDocument.reference.updateData({ “名称”:名称, “细节”:细节, “位置”:位置, “RegisterInstructions”:注册说明, “EventTime”:EventTime, “图像”:imageURL } 未来上载映像(BuildContext上下文)异步{ 最终选择器=图像选择器(); final pickedFile=wait picker.getImage(来源:ImageSource.gallery); 设置状态(){ _image=文件(pickedFile.path); }); StorageReference firebaseStorageRef=FirebaseStorage.instance .ref() .child('event_profile/${Path.basename(_image.Path)}}); StorageUploadTask uploadTask=firebaseStorageRef.putFile(_image); var dowurl=await(await uploadTask.onComplete); 设置状态(){ imageURL=dowurl.toString(); });_Flutter_Google Cloud Firestore - Fatal编程技术网

Flutter 颤振状态变化 class\u EventAdminEditState扩展状态{ @凌驾 小部件构建(构建上下文){ 字符串imageURL=widget.ccaDocument['Image']; 最终全局键=全局键(); 最终文本编辑控制器imageURLController=新文本编辑控制器(); imageURLController.text=imageURL; void\u publishEvent()异步{ 打印(imageURL); widget.ccaDocument.reference.updateData({ “名称”:名称, “细节”:细节, “位置”:位置, “RegisterInstructions”:注册说明, “EventTime”:EventTime, “图像”:imageURL } 未来上载映像(BuildContext上下文)异步{ 最终选择器=图像选择器(); final pickedFile=wait picker.getImage(来源:ImageSource.gallery); 设置状态(){ _image=文件(pickedFile.path); }); StorageReference firebaseStorageRef=FirebaseStorage.instance .ref() .child('event_profile/${Path.basename(_image.Path)}}); StorageUploadTask uploadTask=firebaseStorageRef.putFile(_image); var dowurl=await(await uploadTask.onComplete); 设置状态(){ imageURL=dowurl.toString(); });

Flutter 颤振状态变化 class\u EventAdminEditState扩展状态{ @凌驾 小部件构建(构建上下文){ 字符串imageURL=widget.ccaDocument['Image']; 最终全局键=全局键(); 最终文本编辑控制器imageURLController=新文本编辑控制器(); imageURLController.text=imageURL; void\u publishEvent()异步{ 打印(imageURL); widget.ccaDocument.reference.updateData({ “名称”:名称, “细节”:细节, “位置”:位置, “RegisterInstructions”:注册说明, “EventTime”:EventTime, “图像”:imageURL } 未来上载映像(BuildContext上下文)异步{ 最终选择器=图像选择器(); final pickedFile=wait picker.getImage(来源:ImageSource.gallery); 设置状态(){ _image=文件(pickedFile.path); }); StorageReference firebaseStorageRef=FirebaseStorage.instance .ref() .child('event_profile/${Path.basename(_image.Path)}}); StorageUploadTask uploadTask=firebaseStorageRef.putFile(_image); var dowurl=await(await uploadTask.onComplete); 设置状态(){ imageURL=dowurl.toString(); });,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,您好,我可以问一下,为什么即使我隐式调用了setState(),imageURL也没有更改。 我试着打印出来,以确认上传图像中的图像URL是否发生了更改。 上载图像中的ImageURL已更改,但PublisheEvent中的全局ImageURL未更改。 我想做的是改变上传的图像 有人能陪我出去吗 多谢各位 class _EventAdminEditState extends State<EventAdminEdit> { @override Widget build(Bui

您好,我可以问一下,为什么即使我隐式调用了setState(),imageURL也没有更改。 我试着打印出来,以确认上传图像中的图像URL是否发生了更改。 上载图像中的ImageURL已更改,但PublisheEvent中的全局ImageURL未更改。 我想做的是改变上传的图像

有人能陪我出去吗

多谢各位

class _EventAdminEditState extends State<EventAdminEdit> {

  @override
  Widget build(BuildContext context) {
   String imageURL = widget.ccaDocument['Image'];
    final GlobalKey<FormState> _key = GlobalKey();

    final TextEditingController imageURLController = new TextEditingController();
    imageURLController.text = imageURL;
    


    void _publishEvent() async {
      print(imageURL);
      widget.ccaDocument.reference.updateData({
        'Name' : name,
        'Details': details,
        'Location': location,
        'RegisterInstructions': registrationInstructions,
        'EventTime': eventTime,
        'Image' : imageURL
        
                          
  }
  

Future uploadImage(BuildContext context) async {
  final picker = ImagePicker();
  final pickedFile = await picker.getImage(source: ImageSource.gallery);
  setState(() {
    _image = File(pickedFile.path);
  });
  StorageReference firebaseStorageRef = FirebaseStorage.instance
      .ref()
      .child('event_profile/${Path.basename(_image.path)}}');
  StorageUploadTask uploadTask = firebaseStorageRef.putFile(_image);
  var dowurl = await (await uploadTask.onComplete).ref.getDownloadURL();
  setState(() {
    imageURL = dowurl.toString();

  });
这段代码在您的构建中,所以每次调用setState((){});这就是设置您的imageUrl

您需要使用initState并在那里设置imageUrl

String imageURL = widget.ccaDocument['Image'];
String imageURL;

void initState() {
   super.initState();
   imageURL = widget.ccaDocument['Image'];
}