小编Gus*_*ade的帖子

如何在Flutter中使用Bloc正确设置DropdownButton的值?

我是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)

dart flutter bloc

5
推荐指数
1
解决办法
1892
查看次数

将嵌入的内容传递给嵌套列表的孙组件

我知道有几个问题与此类似,但它们并不完全相同。我正在构建一个嵌套列表,我想在每个孙子中与常见 html 一起显示自定义 html 内容。当我在循环外部添加到 ListComponent 时,可以正常工作,但是如果我将其在循环内部传递给内部子级,则它不会像下面的示例那样工作。我在下面的代码中传递的 html 未显示。我可能试图以错误的方式解决这个问题,但我无法让它以我尝试的任何方式工作。你们中有人知道如何进行这项工作吗?

\n\n

谢谢!

\n\n
export 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}\n
Run Code Online (Sandbox Code Playgroud)\n\n

经过大量测试并进一步检查提到的重复问题及其内部链接后,它并不能完全解决我的问题,因为模板我并没有尝试复制简单的内容。我正在尝试注入另一个包含其他常见 html …

javascript typescript angular

2
推荐指数
1
解决办法
1648
查看次数

标签 统计

angular ×1

bloc ×1

dart ×1

flutter ×1

javascript ×1

typescript ×1