当前位置: 首页 > news >正文

react_12

在异步操作里为状态属性赋值,需要放在 runInAction 里,否则会有警告错误

使用 store,所有使用 store 的组件,为了感知状态数据的变化,需要用 observer 包装,对应着图中 reactions

import { Input } from "antd";
import StudentStore from "../store/StudentStore";
import { observer } from "mobx-react-lite";
import {runInAction} from 'mobx'
import A71 from "./A71";
import A72 from "./A72";
import Search from "antd/es/input/Search";
/* export default */ function A7() {
  //   function onChange(e: React.ChangeEvent<HTMLInputElement>) {}
  //如果觉得上面的写法复杂,可以写成下面的形式 <Input onChange={(e)=>{}}></Input>,e就代表事件对象

  return (
    <>
      {/* e.target.value就代表文本框里面输入的值,当在文本框里面输入内容之后,数据已经存入到了StudentStore
    里面了,页面的数据并没有同步变化,这是因为A7组件并没有感知到StudentStore里面数据的变化,函数组件并没有
    重新被调用,要想A7感知到store里面数据的变化,需要借助observer方法,使用observer方法之后,就不默认导出A7
    而是使用export default observer(A7),这样observer函数就能观察到A7内store里面数据的变化,数据变化之后,
    它就会重新调用A7,observer就对应着Reactions(状态数据发生改变后要执行的操作,这里执行的操作是P7被重新渲染)
    */}
      <Input
        onChange={(e) => {
          StudentStore.setName(e.target.value);
        }}
      ></Input>
      <Search
        style={{ width: 150 }}
        placeholder="请输入编号"
        onSearch={(v) => {
          StudentStore.fetch(Number(v));
        }}
      ></Search>
      <h1>组件0:{StudentStore.student.name} {StudentStore.displayName}</h1>
      <h1>组件0: {StudentStore.displayName}</h1>
      <h1>组件0: {StudentStore.displayName}</h1>
      <A71></A71>
      <A72></A72>
    </>
  );
}
export default observer(A7);

相关文章:

  • 驱动开发11-1 编写IIC驱动-读取温湿度数据
  • 记录paddlepaddle-gpu安装
  • Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
  • Codeforces Round 882 (Div. 2)
  • 【一、http】go的http基本请求方法
  • Python用RoboBrowser库写一个通用爬虫模版
  • AndroidAuto PCTS A118解决杂音问题
  • 升级 MacOS 系统后,playCover 内游戏打不开了如何解决
  • 苹果相机怎么磨皮 苹果手机怎么磨皮
  • 使用 uni-app 开发项目,日期和时间如何格式化?
  • HTTPS的加密方式超详细解读
  • 数据结构-邻接表广度优先搜索(C语言版)
  • 机器学习中的关键组件
  • OpenCV官方教程中文版 —— 图像修复
  • 利用MySQL玩转数据分析之基础篇
  • Proteus仿真--12864LCD显示计算器键盘按键实验(仿真文件+程序)
  • 学习小结,学而时习之,坚持学习之,温顾学习之
  • Webpack的Tree Shaking。它的作用是什么?
  • Docker Stack部署应用详解+Tomcat项目部署详细实战
  • Linux ----------------------- 文本处理工具
  • 钟睒睒:不反对代工,但农夫山泉目前所有产品是无法代工的
  • 花旗回应减员传闻:持续评估人力资源战略,将为受影响的个人提供支持
  • 墨海军训练舰在纽约撞桥,墨总统:对遇难者表示悲痛,将跟进调查
  • 墨西哥海军帆船纽约撞桥事故已致2人死亡19人受伤
  • 哪条线路客流最大?哪个站点早高峰人最多?上海地铁一季度客流报告出炉
  • 当智慧农场遇见绿色工厂:百事如何用科技留住春天的味道?