在 Flutter 中将字符串解析为小部件

Par*_*ars 6 dart flutter flutter-layout

我想将以下字符串解析为其等效的 Flutter 小部件:

String fetchedFromServer = '''
Container(
   child: Text("Hello")
)
''';

Run Code Online (Sandbox Code Playgroud)

我想从网络服务器接收布局并将它们解析为真正的小部件。

我怎样才能在 Dart/Flutter 中做到这一点?

Abi*_*n47 7

您可能必须自己创建解析和渲染机制,因为我认为 Flutter 不支持服务器端渲染(Flutter Web 除外,尽管我还没有听到任何消息)。

此外,您可能希望以 JSON 或其他数据格式返回布局数据。对于初学者来说,解析和处理会容易得多。但除此之外,如果您想基于原始 Dart 渲染 UI,则必须有效地设置您的应用程序,以便能够从字符串运行任意 Dart 代码,这不仅在 Dart/Flutter 中很难管理,而且让您面临无数潜在的安全问题。

回到主题,假设您有以下 UI 数据:

{
  "class": "Container",
  "child": {
    "class": "Text",
    "value": "Hello"
  }
}
Run Code Online (Sandbox Code Playgroud)

在您的应用程序中,您可以像这样解析:

{
  "class": "Container",
  "child": {
    "class": "Text",
    "value": "Hello"
  }
}
Run Code Online (Sandbox Code Playgroud)