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

子组件监听父组件消息,随之变化与不变化

父组件通过props传递给子组件消息,子组件有两种情况接收处理:

1、子组件监听父组件props的变化,同时随之变化【可以直接取props中的值展示,也可以监听值得变化处理

2、子组件初始化时更新,随后不再随父组件变化

示例:父组件代码:

import React, { useEffect, useState } from "react";
import ChildModal from "./components/childModal";
import "./index.less";function App() {const [sum, setSum] = useState(0);const addSum = () => {setSum(sum + 1);}return (<><div>当前数量为:{sum}</div><div className="container" onClick={addSum}>点击加1</div><ChildModal sum={sum} /></>);
}// 导出App组件
export default App;

第一种情况示例【子组件监听父组件props的变化,同时随之变化】子组件代码:

可以直接取props中的值展示,也可以监听值得变化处理

a、【直接取props中的值】展示代码如下:

import React from "react";const ChildModal = (props) => {console.log('props', props);return (<div>子组件的数量:{props.sum}</div>)
}
export default ChildModal;

b、【监听props值得变化】展示代码如下:

import React, { useEffect, useState } from "react";const ChildModal = (props) => {console.log('props', props);const [sum, setSum] = useState(-1);useEffect(() => {setSum(props.sum);}, [props.sum])return (<div>子组件的数量:{sum}</div>)
}
export default ChildModal;

效果图:

 

第二种情况示例【子组件初始化时更新,随后不再随父组件变化】子组件代码:

import React, { useEffect, useState } from "react";const ChildModal = (props) => {console.log('props', props);const [sum, setSum] = useState(-1);useEffect(() => {setSum(props.sum);}, [])return (<div>{sum}</div>)
}
export default ChildModal;

效果图:

http://www.lryc.cn/news/194854.html

相关文章:

  • 计算机操作系统面试题自用
  • redis作为消息队列的缺点
  • Redis五大数据类型的底层设计
  • logback的简单配置详解
  • TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序
  • Ant Design Vue设置表格滚动 宽度自适应 不换行
  • 在Linux上开启文件服务,需要安装并配置Samba
  • TypeScript 类型兼容性
  • 【多线程】线程的状态
  • pytorch 对图片进行归一化处理
  • 零售数据分析师熬夜整理:人、货、场、供、财这样做
  • 基于SSM的学生选课管理系统
  • SQL注入漏洞
  • C++ wpf自制软件打包安装更新源码实例
  • 8月19日PMP成绩,预计10月16日公布!附查询入口、流程
  • 简易LDO设计(包含原理图、PCB和实验)
  • SpringBoot面试题5:SpringBoot Starter的工作原理是什么?
  • Leetcode 2902. Count of Sub-Multisets With Bounded Sum
  • ARP协议(地址解析协议) 的作用和操作过程
  • 轻游戏风格虚拟资源付费下载模板Discuz论坛模板
  • MongoDB索引操作
  • AMEYA360:君正低功耗AIoT图像识别处理器—X1600/X1600E
  • EM@圆和圆锥曲线的参数方程
  • uniapp 微信小程序 vue3.0+TS手写自定义封装步骤条(setup)
  • Python 金融大数据分析
  • 初识C++入门(1)
  • 使用Selenium的WebDriver进行长截图
  • python+大数据校园卡数据分析 计算机竞赛
  • 【机器学习】sklearn降维算法PCA
  • 华为云云耀云服务器L实例评测|企业项目最佳实践之评测用例(五)