它正在显示上下文未定义

Posted

技术标签:

【中文标题】它正在显示上下文未定义【英文标题】:It is Showing context is undefined 【发布时间】:2021-11-15 23:52:36 【问题描述】:

这个飞镖项目它显示一个错误上下文未定义,当我将它作为参数发送时它显示错误我是新来的,我的导师写了同样的(正如我所见) 我正面临这个问题

导入'package:flutter/material.dart';

class Category_item extends StatelessWidget 
  final String title;
  final Color color;
  Category_item(this.title, this.color);
  void selectCategory() 
    Navigator.of(context);
  

  @override
  Widget build(BuildContext context) 
    return InkWell(
      onTap: selectCategory,
      splashColor: Theme.of(context).primaryColor,
      borderRadius: BorderRadius.circular(15), //wave ripple waves
      child: Container(
        padding: const EdgeInsets.all(15),
        child: Text(
          title,
          style: Theme.of(context).textTheme.headline6,
        ),
        decoration: BoxDecoration(
          gradient: LinearGradient(
            colors: [
              color.withOpacity(0.7),
              color,
            ],
            begin: Alignment.topLeft,
            end: Alignment.bottomRight,
          ),
          borderRadius: BorderRadius.circular(15),
        ),
      ),
    );
  

【问题讨论】:

【参考方案1】:
 void selectCategory() 
    Navigator.of(context);
  

这个函数在构建之外。 试试这个:

import 'package:flutter/material.dart';

class Category_item extends StatelessWidget 
  final String title;
  final Color color;
  Category_item(this.title, this.color);
  void selectCategory() 
    Navigator.of(context);
  

  @override
  Widget build(BuildContext context) 
    return InkWell(
      onTap: selectCategory,
      splashColor: Theme.of(context).primaryColor,
      borderRadius: BorderRadius.circular(15), //wave ripple waves
      child: Container(
        padding: const EdgeInsets.all(15),
        child: Text(
          title,
          style: Theme.of(context).textTheme.headline6,
        ),
        decoration: BoxDecoration(
          gradient: LinearGradient(
            colors: [
              color.withOpacity(0.7),
              color,
            ],
            begin: Alignment.topLeft,
            end: Alignment.bottomRight,
          ),
          borderRadius: BorderRadius.circular(15),
        ),
      ),
    );
  

【讨论】:

【参考方案2】:

试试这个-

selectCategory(BuildContext context) 
    Navigator.of(context);
  

【讨论】:

【参考方案3】:

函数需要有上下文的输入,才能知道上下文是什么。

void selectCategory(BuildContext context) 
  Navigator.of(context);

然后这样称呼它:

onTap: () => selectCategory(context),

【讨论】:

以上是关于它正在显示上下文未定义的主要内容,如果未能解决你的问题,请参考以下文章

React.useContext 显示为未定义

隐式上下文未定义,角度 7

添加暗模式但上下文未定义

导航未定义名称上下文

gjs cairo 上下文绘图未显示在杂乱的窗口中

反应路由器dom v4 |上下文路由器和路由未定义