【问题标题】:I am getting this error styling my portfolio in flutter我在设计我的投资组合时遇到了这个错误
【发布时间】:2020-06-18 13:37:05
【问题描述】:
import 'package:flutter/material.dart';

class ThemeSwitcher extends InheritedWidget {
  final _ThemeSwitcherWidgetState data; // We'll use ThemeSwitcher to get access to the current state of ThemeSwitcherWidget

  const ThemeSwitcher({
    Key key,
    @required this.data,
    @required Widget child,
  })  : assert(child != null),
        super(key: key, child: child);

  static _ThemeSwitcherWidgetState of(BuildContext context) { //This method returns the current state of the ThemeSwitcherWidget. This will be used down the tree
    return (context.dependOnInheritedWidgetOfExactType(ThemeSwitcher)
    as ThemeSwitcher)
        .data;
  }

  @override
  bool updateShouldNotify(ThemeSwitcher old) {
    return this != old;
  }
}

class ThemeSwitcherWidget extends StatefulWidget {
  final bool initialDarkModeOn; // this is the initial state of the variable
  final Widget child; // child to which this boolean variable should be propagated upon change. This will be our app in this case

  ThemeSwitcherWidget({Key key, this.initialDarkModeOn, this.child})
      : assert(initialDarkModeOn != null),
        assert(child != null),
        super(key: key);

  @override
  _ThemeSwitcherWidgetState createState() => _ThemeSwitcherWidgetState();
}


class _ThemeSwitcherWidgetState extends State<ThemeSwitcherWidget> {
  bool isDarkModeOn;

  void switchDarkMode() {  //method used to toggle dark mode during the runtime of the app
    setState(() {
      isDarkModeOn = !isDarkModeOn;
    });
  }

  @override
  Widget build(BuildContext context) {
    isDarkModeOn = isDarkModeOn ?? widget.initialDarkModeOn; // this is the build method which would build the widget tree with the above info
    return ThemeSwitcher(
      data: this,
      child: widget.child,
    );
  }
}

位置参数太多:预期为 0,但找到了 1。 尝试删除额外的位置参数,或指定命名参数的名称。

这是我尝试多种方法后一直面临的错误。

我想知道如何解决这个问题,因为我没有从搜索中得到任何好的解决方案。


【问题讨论】:

标签: flutter flutter-dependencies flutter-web portfolio visual-web-developer


【解决方案1】:

在代码的 _ThemeSwitcherWidgetState of(BuildContext context) 方法中返回以下语句:

return (context.dependOnInheritedWidgetOfExactType<ThemeSwitcher>()).data;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2023-03-09
    • 1970-01-01
    • 2022-10-13
    • 2018-05-05
    • 2021-07-03
    相关资源
    最近更新 更多