【问题标题】:getText() method of FlutterSummerNote returns blank on first button clickFlutterSummerNote 的 getText() 方法在第一次单击按钮时返回空白
【发布时间】:2021-12-09 02:27:23
【问题描述】:

我有一个需要集成 html 编辑器的项目,我对 FlutterSummerNote 包感兴趣,因为它具有有趣的功能。但是,当我将它集成到我的项目中时,我遇到了关于 FlutterSummerNote 包的错误。当我第一次单击 Save 按钮时,我得到了空白值,但是当我第二次单击等等时,我可以从 _keyEditor.currentState?.getText() 方法中获取值。我正在使用flutter_summernote: ^1.0.0 版本。下面是示例代码。有什么帮助吗?

import 'package:flutter/material.dart';
import 'package:flutter_summernote/flutter_summernote.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Demo Flutter Summernote'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({required this.title});

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  GlobalKey<FlutterSummernoteState> _keyEditor = GlobalKey();
  String result = "";

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
        elevation: 0,
        actions: <Widget>[
          IconButton(
            icon: Icon(Icons.save),
            onPressed: () async {
              final value = await _keyEditor.currentState?.getText();
              ScaffoldMessenger.of(context).showSnackBar(SnackBar(
                duration: Duration(seconds: 5),
                content: Text(value ?? "-"),
              ));
            },
          )
        ],
      ),
      backgroundColor: Colors.white,
      body: FlutterSummernote(
        hint: "Your text here...",
        key: _keyEditor,
        hasAttachment: true,
        customToolbar: """
          [
            ['style', ['bold', 'italic', 'underline', 'clear']],
            ['font', ['strikethrough', 'superscript', 'subscript']],
            ['insert', ['link', 'table', 'hr']]
          ]
        """,
      ),
    );
  }

【问题讨论】:

    标签: flutter flutter-layout flutter-dependencies


    【解决方案1】:

    我可以通过调用函数两次连续获取文本来解决这个问题:

    final value = await _keyEditor.currentState?.getText();
    final value = await _keyEditor.currentState?.getText();
    
    ScaffoldMessenger.of(context).showSnackBar(SnackBar(
      duration: Duration(seconds: 5),
      content: Text(value ?? "-"),
    ));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多