flutter_eval
flutter_eval copied to clipboard
Imports not working
Facing issues when we try to import custom widgets and library dependency imports. Importing custom button widget gives error: import 'button.dart';
EvalExample.dart
import 'package:flutter/material.dart';
import 'package:flutter_eval/flutter_eval.dart';
class EvalExample extends StatelessWidget {
const EvalExample({super.key});
@override
Widget build(BuildContext context) {
return const CompilerWidget(
packages: {
'example': {
'main.dart': '''
import 'package:flutter/material.dart';
import 'button.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Button(
label: 'Go Back',
onPressed: () {
Navigator.pop(context);
},
),
),
);
}
}
'''
}
},
/// Specify which library (i.e. which file) to use as an entrypoint.
library: 'package:example/main.dart',
/// Specify which function to call as the entrypoint.
/// To use a constructor, use "ClassName.constructorName" syntax. In
/// this case we are calling a default constructor so the constructor
/// name is blank.
function: 'MyApp.',
/// Specify the arguments to pass to the entrypoint. Generally these
/// should be dart_eval [$Value] objects, but when invoking a static or
/// top-level function or constructor, [int]s, [double]s, and [bool]s
/// should be passed directly.
args: [null],
);
}
}
Button.dart
import 'package:flutter/material.dart';
class Button extends StatelessWidget {
final String label;
final Color color;
final double fontSize;
final TextStyle textStyle;
final Color textColor;
final VoidCallback? onPressed;
const Button({
super.key,
required this.label,
this.textColor = Colors.white,
this.fontSize = 16,
this.textStyle = const TextStyle(fontStyle: FontStyle.normal),
this.color = Colors.blueAccent,
this.onPressed,
});
@override
Widget build(BuildContext context) {
return ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: color,
),
onPressed: onPressed,
child: Text(
label,
style: textStyle.copyWith(fontSize: fontSize,color: textColor),
),
);
}
}
Error Log:
======== Exception caught by widgets library =======================================================
The following LateError was thrown building CompilerWidget(dirty, state: _CompilerWidgetState#bb4b4):
LateInitializationError: Field 'codeCache' has not been initialized.
The relevant error-causing widget was:
CompilerWidget CompilerWidget:file:///Users/kiranshinde/workspace/mobile/Flutter/my_flutter/apps/example_app/lib/screens/dynamic_poc.dart:10:18
When the exception was thrown, this was the stack:
#0 _CompilerWidgetState.codeCache (package:flutter_eval/src/flutter_eval.dart)
#1 _CompilerWidgetState.build (package:flutter_eval/src/flutter_eval.dart:166:30)
#2 StatefulElement.build (package:flutter/src/widgets/framework.dart:5599:27)
#3 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5487:15)
#4 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#5 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#6 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5469:5)
#7 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5641:11)
#8 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5463:5)
... Normal element mounting (234 frames)
#242 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340:16)
#243 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6904:36)
#244 Element.updateChild (package:flutter/src/widgets/framework.dart:3849:18)
#245 Element.updateChildren (package:flutter/src/widgets/framework.dart:4036:32)
#246 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6929:17)
#247 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#248 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#249 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#250 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#251 StatefulElement.update (package:flutter/src/widgets/framework.dart:5673:5)
#252 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#253 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#254 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#255 ProxyElement.update (package:flutter/src/widgets/framework.dart:5816:5)
#256 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#257 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#258 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#259 ProxyElement.update (package:flutter/src/widgets/framework.dart:5816:5)
#260 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:105:11)
#261 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#262 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#263 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#264 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#265 StatefulElement.update (package:flutter/src/widgets/framework.dart:5673:5)
#266 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#267 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#268 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#269 ProxyElement.update (package:flutter/src/widgets/framework.dart:5816:5)
#270 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:105:11)
#271 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#272 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#273 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#274 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#275 StatefulElement.update (package:flutter/src/widgets/framework.dart:5673:5)
#276 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#277 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#278 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#279 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#280 StatefulElement.update (package:flutter/src/widgets/framework.dart:5673:5)
#281 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#282 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6776:14)
#283 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#284 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6776:14)
#285 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#286 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#287 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#288 ProxyElement.update (package:flutter/src/widgets/framework.dart:5816:5)
#289 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#290 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#291 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#292 ProxyElement.update (package:flutter/src/widgets/framework.dart:5816:5)
#293 Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#294 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#295 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#296 Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#297 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2905:19)
#298 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1136:21)
#299 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:443:5)
#300 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1392:15)
#301 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1313:9)
#302 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1171:5)
#303 _invoke (dart:ui/hooks.dart:312:13)
#304 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:419:5)
#305 _drawFrame (dart:ui/hooks.dart:283:31)
I have this issue.