颤振错误:“cm”,无法将参数类型,ContextModel 分配给参数类型“ContextModel”

时间:2021-07-31 12:33:44

标签: flutter dart flutter-layout flutter-dependencies flutter-test

代码

import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
import 'package:math_expressions/math_expressions.dart';
import 'package:path/path.dart' as Path;

import './calculator_buttons.dart';

void main() {
  runApp(const CalculatorApp());
  //void evaluate;
}

class CalculatorApp extends StatefulWidget {
  const CalculatorApp({Key? key}) : super(key: key);

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

class _CalculatorAppState extends State<CalculatorApp> {
  int firstNum = 0;
  int secondNum = 0;
  String history = '';
  String texttodisplay = '';
  String res = '';
  String operation = '';
  ///
  void numClick(String text) {
    setState(() => texttodisplay += text);
  }

  void allClear(String text) {
    setState(() {
      history = '';
      texttodisplay = '';
    });
  }

  void clear(String text) {
    setState(() {
      texttodisplay = '';
    });
  }

  void evaluate(String text) {
    Parser p = Parser();
    Expression exp = p.parse(texttodisplay);
    ContextModel cm = ContextModel();
    //double eval = exp.evaluate(EvaluationType.REAL, cm);
    //cm.bindVariable
    //double eval = exp.evaluate(EvaluationType.REAL, cm);

    setState(() {
      history = texttodisplay;
      texttodisplay = exp.evaluate(EvaluationType.REAL, cm);
    });
  }

"cm" 参数类型 'ContextModel 不能分配给参数类型 'ContextModel。

错误

<块引用>

参数类型“ContextModel(其中 ContextModel 在 C:\Users\asus\Documents\calculator\lib\main.dart 中定义)”不能分配给参数类型“ContextModel(其中 ContextModel 在 C 中定义)” :\Android 应用开发\flutter.pub-cache\hosted\pub.dartlang.org\math_expressions-2.1.1\lib\src\evaluator.dart)'.dartargument_type_not_assignable main.dart(395, 7): ContextModel 定义在 C:\Users\asus\Documents\calculator\lib\main.dart evaluator.dart(22, 60):ContextModel 定义在 C:\Android app development\flutter.pub-cache\hosted\pub.dartlang.org\math_expressions-2.1.1\lib\src\evaluator.dart 上下文模型厘米

1 个答案:

答案 0 :(得分:0)

错误消息指出 ContextModel 正在文件 main.dart 中重新定义。您确定 cm 正在分配 ContextModel 包的 math_expressions 实例吗?

可以肯定的是,如果您按 ctrl+click,Visual Studio Code 和 Android Studio 应该会引导您找到元素的定义,请尝试按 ContextModel

也可以尝试调试,在 cm 后放置一个断点,看看正在分配什么。