2024年8月

外部引入的包有Flutter_screenuntil
在main.dart文件引入该包之外,还应该在main文件用这个包包裹Material App,具体解决方法可以在pub.dev上直接搜,有example
本次就写成了:

import 'package:flutter/material.dart';
import 'package:loki/agency/gallery/index.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';


void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return ScreenUtilInit(
        designSize: const Size(360, 690),
        builder: (_,child) {
          return MaterialApp(
            debugShowCheckedModeBanner: false,
            home: child,
          );
        },
        child: const Agency_gallery_census_page(),
        );
  }
}

CSDN上builder后面的括号,原本应该是_的部分也写了内容,而且页面没有用child代替而是写上去了,结果就是疯狂报错。。。。
害人不浅!!!!!!太坑了!!!!

无法运行adb.exe()
报错的样子长成这样——
屏幕截图 2024-08-25 230953.png
千万不要傻不拉几的搞adb.exe...或者重新安装Android studio的SDK什么的...关掉所有的杀毒软件和手机助手就好啦~

360罪大恶极!
最后成功解决~
屏幕截图 2024-08-25 231256.png

下周三夏日活动结束
下周三新人到岗,通宵都得刷完react...
拜托拜托一定要按时完成啊
还想看魔卡少女小樱来着呢....
忙完了我要看一天的小樱!!!!从早看到晚!!!!!

报错解决方法
即使是默认生成的新项目项目结构也可能报错。
解决方法,由面及点,逐渐缩小范围。

以flutter为例子,新项目已经写了一部分的页面,提示报错为arr[]数组不可为空,可以:

  1. 再新建一个新项目,运行,确认运行设备没问题;
  2. 将main文件复制到新项目上,运行,确认最重要的main.dart没问题;如果有错,逐步撤销之前进行的更改,直到运行无误。该过程可以确定,到底是调用的页面的问题,还是main.dart的问题。
  3. 将lib文件夹复制到新项目。观察已经写好的页面。比如这次就是虽然写了很多,但真正render的只有appBar,那么,注销掉其他没有被调用的部分,先确认appBar的正确性;
    运行,发现果然是appBar的问题。
  4. 继续注释掉appBar里面的小widget,一直到定位到错误地点为止。
  5. 如果是在web端运行,记得刷新一下浏览器。

stateful和stateless widget,props和state

  1. stateless的静止不是永恒的,而是在生命周期以内的
  2. props,父组件传入参数。useState,组件内传入参数。
  3. 比如组件向服务器请求更新,服务器传入参数到组件,因为不涉及父组件,所以也是useState
  4. 二者代码比较
class SearchBar extends StatefulWidget {
  const SearchBar({super.key});

  @override
  State<SearchBar> createState() => _SearchBarstate();
}

class _SearchBarstate extends State<SearchBar>{
  String hint = "一个默认值";   //这里的hint就是向服务器请求更新的部分
  @override
  void initState() {
    gethint();
  }

  Future<void> gethint(){      //可以考虑放到getX里然后统一管理,单拎出来形成一个新的文件
    setState
  }
  @override
  Widget build(BuildContext context){
    return();
  }
}


class FindBar extends StatelessWidget{
  const FindBar({super.key});

  @override
  Widget build(BuildContext context){
    return 
    ();
  }
}

待办:

  1. 页面,周一之前必须肝完
  2. getX知识总结
  3. 协议,周三开始一天一个,SSH,非对称加密开始。浅浅算一下欠了几个...痛苦面具。
  4. 如果有时间的话...拜托了一定要有时间啊...react总结,巩固,加深