我是Bloc编程模式的新手,在将其与Dropdown一起使用时遇到问题,这在我的bloc类中:
final _dropDown = BehaviorSubject<String>();
Stream<String> get dropDownStream => _dropDown.stream;
Sink<String> get dropDownSink => _dropDown.sink;
final _dropdownValues = BehaviorSubject<List<String>>(seedValue: [
'One',
'Two',
'Three',
'Four',
].toList());
Stream<List<String>> get dropdownValuesStream => _dropdownValues.stream;
Run Code Online (Sandbox Code Playgroud)
在我的窗口小部件页面中,我添加了以下下拉窗口小部件,以便所有内容均由Bloc类处理:
StreamBuilder<List<String>>(
stream: _exampleBloc.dropdownValuesStream,
builder: (BuildContext contextValues, AsyncSnapshot snapshotValues) {
return StreamBuilder<String>(
stream: _exampleBloc.dropDownStream,
builder: (BuildContext context, AsyncSnapshot snapshot) {
return InputDecorator(
decoration: InputDecoration(
icon: const Icon(Icons.color_lens),
labelText: 'DropDown',
),
child: DropdownButtonHideUnderline(
child: DropdownButton<String>(
value: snapshot.data,
onChanged: (String newValue) => _exampleBloc.dropDownSink.add(newValue),
items: snapshotValues.data != null ? snapshotValues.data.map<DropdownMenuItem<String>>((String value) {
return …Run Code Online (Sandbox Code Playgroud) 我知道有几个问题与此类似,但它们并不完全相同。我正在构建一个嵌套列表,我想在每个孙子中与常见 html 一起显示自定义 html 内容。当我在循环外部添加到 ListComponent 时,可以正常工作,但是如果我将其在循环内部传递给内部子级,则它不会像下面的示例那样工作。我在下面的代码中传递的 html 未显示。我可能试图以错误的方式解决这个问题,但我无法让它以我尝试的任何方式工作。你们中有人知道如何进行这项工作吗?
\n\n谢谢!
\n\nexport class Model {\n title: string;\n children?: Model[] = [];\n}\n\n@Component({\n selector: \'list\',\n template: `\n<ul>\n <li *ngFor="let item of items">\n <list-item [item]="item">\n <div main-content>\n <ng-content select="[main-content]"></ng-content>\n </div>\n </list-item>\n <list [items]="item.children"></list>\n </li>\n</ul>\n`\n})\nexport class List {\n @Input() items: Model[];\n}\n\n@Component({\n selector: \'list-item\',\n template: `\n<h1>{\xe2\x80\x8c{ item.title }}</h1>\n<div class="content">\n <ng-content select="[main-content]"></ng-content>\n</div>\n`\n})\nexport class ListItem {\n @Input() item: Model;\n}\n\n@Component({\n selector: \'app-main\',\n template: `\n <list [items]="items">\n <div main-content>\n <h1>Test</h1>\n </div>\n </list>\n`\n})\nexport class AppMainComponent {\n}\nRun Code Online (Sandbox Code Playgroud)\n\n经过大量测试并进一步检查提到的重复问题及其内部链接后,它并不能完全解决我的问题,因为模板我并没有尝试复制简单的内容。我正在尝试注入另一个包含其他常见 html …