【问题标题】:NoSuchMethodError: invalid member on null: 'findAncestorStateOfType'NoSuchMethodError:null 上的无效成员:'findAncestorStateOfType'
【发布时间】:2021-08-29 00:17:15
【问题描述】:

我对颤动和火焰仍然很陌生,但我正在开发一个游戏,我需要能够在扩展 BaseGame 的类中传递 BuilerContext 上下文,我目前正在使用一种方法来添加一个作为小部件的组件到名为“addWidgetOverlay”的屏幕。我知道这个错误通常是在小部件内部未调用 BuilderContext 上下文时引起的,但我不完全确定我的类在哪里扩展 BaseGame 而不是有状态或无状态小部件。提前致谢!

import 'package:flame/components/parallax_component.dart';
import 'package:flame/components/text_component.dart';
import 'package:flame/game.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

import 'gamesfdafdsafdsa.dart';


class NewMenu extends BaseGame with HasWidgetsOverlay {

  final SharedPreferences storage;
  TextComponent _text;
  ParallaxComponent _parallaxComponent;
  // BuildContext context;
  NewMenu(this.storage, BuildContext context) {



    // TEMP BACKGROUND
    _parallaxComponent = ParallaxComponent([
      ParallaxImage('Layer_0010_1.png'),
    ], baseSpeed: Offset(100, 0), layerDelta: Offset(20, 0));


// ADDS THE PLAY BUTTON
    addWidgetOverlay('Play Button',
    Center(
      child: TextButton(
          onPressed: () {
            Navigator.of(context).pushReplacement(
              MaterialPageRoute(
                builder: (context) => GamePlay(),
              ),
            );
          },       child: Text('Play')),
    ),
    );

    // PARALLAX COMPONENT
    add(_parallaxComponent);

    // HIGHSCORE TEXT
    _text = TextComponent('${storage.getInt('highscore') ?? 0}');
    add(_text);
  }
}

【问题讨论】:

  • 请发布更多堆栈跟踪和您正在使用的 Flame 版本。
  • 我目前正在运行火焰:^0.29.4,我收到的错误消息是 NoSuchMethodError: invalid member on null: 'findAncestorStateOfType'。

标签: flutter dart flame


【解决方案1】:

我通过创建一个单独的类来解决这个问题,该类扩展了一个有状态的小部件,并通过使用 Future 构建器小部件重新设计了整个主菜单,以帮助在我的共享首选项中显示存储的值。我仍然不能 100% 确定如何使用扩展 BaseGame 的类在屏幕之间导航,所以我建议只使用有状态小部件。

【讨论】:

  • 如果您改用1.0.0-releasecandidate.11,它可能会对您有所帮助,因为您可以改用GameWidget
猜你喜欢
  • 2021-07-18
  • 2021-04-28
  • 2020-09-12
  • 2021-04-25
  • 2021-10-12
  • 2021-03-08
  • 2021-02-22
  • 1970-01-01
  • 2021-01-14
相关资源
最近更新 更多