dengyin2000 / dynamic_widget

A Backend-Driven UI toolkit, build your dynamic UI with json, and the json format is very similar with flutter widget code.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

exporter throwing error when turning code to json

mike-gallego opened this issue · comments

I have not been successful building multiple widgets. Is this package made for only single widgets or can you wrap multiple widgets into one and export them? I am using version 3.0.5. Also I noticed that not all properties export into the json. For example, when I exported just the container that had decoration, it wasn't passed into the json.

Build Component

Widget _buildComponent(GlobalKey key, Widget component) {
    return Padding(
    padding: const EdgeInsets.all(8.0),
    child: DynamicWidgetJsonExportor(key: key, child: component),
  );
}

Component:

Container(
              height: 200,
              margin: EdgeInsets.symmetric(horizontal: 15.0),
              decoration: BoxDecoration(
                borderRadius: BorderRadius.all(Radius.circular(20.0)),
                image: DecorationImage(
                  image: AssetImage('assets/weather/clear-day/bg.jpg'),
                  colorFilter: ColorFilter.mode(
                      Colors.black.withOpacity(0.75), BlendMode.dstATop),
                  fit: BoxFit.cover,
                ),
              ),
              child: Stack(
                children: [],
              ),

Function:

var exportor = key.currentWidget as DynamicWidgetJsonExportor;
                var exportJsonString = exportor.exportJsonString();
                setState(() {
                  json = exportJsonString;
                  debugPrint('the widget json: $json');
                });

Log:

E/flutter ( 7669): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: type 'AlignmentDirectional' is not a subtype of type 'Alignment'
E/flutter ( 7669): #0      StackWidgetParser.export
package:dynamic_widget/…/basic/stack_positioned_widgets_parser.dart:71
E/flutter ( 7669): #1      DynamicWidgetBuilder.export
package:dynamic_widget/dynamic_widget.dart:140
E/flutter ( 7669): #2      ContainerWidgetParser.export
package:dynamic_widget/…/basic/container_widget_parser.dart:71
E/flutter ( 7669): #3      DynamicWidgetBuilder.export
package:dynamic_widget/dynamic_widget.dart:140
E/flutter ( 7669): #4      DynamicWidgetJsonExportor.exportJsonString.<anonymous closure>
package:dynamic_widget/…/basic/dynamic_widget_json_exportor.dart:27
E/flutter ( 7669): #5      ComponentElement.visitChildren
package:flutter/…/widgets/framework.dart:4681
E/flutter ( 7669): #6      Element.visitChildElements
package:flutter/…/widgets/framework.dart:3241
E/flutter ( 7669): #7      DynamicWidgetJsonExportor.exportJsonString
package:dynamic_widget/…/basic/dynamic_widget_json_exportor.dart:26
E/flutter ( 7669): #8      _DynamicExporterPageState.build.<anonymous closure>
package:kai_mobile/…/dynamic_widget/dynamic_widget_exporter_screen.dart:33
E/flutter ( 7669): #9      _InkResponseState._handleTap
package:flutter/…/material/ink_well.dart:993
E/flutter ( 7669): #10     _InkResponseState.build.<anonymous closure>
package:flutter/…/material/ink_well.dart:1111
E/flutter ( 7669): #11     GestureRecognizer.invokeCallback
package:flutter/…/gestures/recognizer.dart:183
E/flutter ( 7669): #12     TapGestureRecognizer.handleTapUp
package:flutter/…/gestures/tap.dart:598
E/flutter ( 7669): #13     BaseTapGestureRecognizer._checkUp
package:flutter/…/gestures/tap.dart:287
E/flutter ( 7669): #14     BaseTapGestureRecognizer.acceptGesture
package:flutter/…/gestures/tap.dart:259
E/flutter ( 7669): #15     GestureArenaManager.sweep
package:flutter/…/gestures/arena.dart:157
E/flutter ( 7669): #16     GestureBinding.handleEvent
package:flutter/…/gestures/binding.dart:362
E/flutter ( 7669): #17     GestureBinding.dispatchEvent
package:flutter/…/gestures/binding.dart:338
E/flutter ( 7669): #18     RendererBinding.dispatchEvent
package:flutter/…/rendering/binding.dart:267
E/flutter ( 7669): #19     GestureBinding._handlePointerEvent
package:flutter/…/gestures/binding.dart:295
E/flutter ( 7669): #20     GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:240
E/flutter ( 7669): #21     GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:213
E/flutter ( 7669): #22     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter ( 7669): #23     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 7669): #24     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter ( 7669): #25     _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter ( 7669): #26     _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)

can you post all your code here? I will check it out. it seems that StackWidgetParser's export method has some bugs.

@mikeyyg96 please try the latest version 3.0.6

Updating to latest version 3.0.6 works for me :)