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


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

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

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

    示例:父组件代码:

    1. import React, { useEffect, useState } from "react";
    2. import ChildModal from "./components/childModal";
    3. import "./index.less";
    4. function App() {
    5. const [sum, setSum] = useState(0);
    6. const addSum = () => {
    7. setSum(sum + 1);
    8. }
    9. return (
    10. <>
    11. <div>当前数量为:{sum}div>
    12. <div className="container" onClick={addSum}>点击加1div>
    13. <ChildModal sum={sum} />
    14. );
    15. }
    16. // 导出App组件
    17. export default App;

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

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

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

    1. import React from "react";
    2. const ChildModal = (props) => {
    3. console.log('props', props);
    4. return (
    5. <div>子组件的数量:{props.sum}div>
    6. )
    7. }
    8. export default ChildModal;

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

    1. import React, { useEffect, useState } from "react";
    2. const ChildModal = (props) => {
    3. console.log('props', props);
    4. const [sum, setSum] = useState(-1);
    5. useEffect(() => {
    6. setSum(props.sum);
    7. }, [props.sum])
    8. return (
    9. <div>子组件的数量:{sum}div>
    10. )
    11. }
    12. export default ChildModal;

    效果图:

     

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

    1. import React, { useEffect, useState } from "react";
    2. const ChildModal = (props) => {
    3. console.log('props', props);
    4. const [sum, setSum] = useState(-1);
    5. useEffect(() => {
    6. setSum(props.sum);
    7. }, [])
    8. return (
    9. <div>{sum}div>
    10. )
    11. }
    12. export default ChildModal;

    效果图:

  • 相关阅读:
    【SQL每日一练】分组过滤练习题
    JUC并发编程系列详解篇十二(synchronized底层原理进阶)
    Dart(11)-mixin
    广度优先搜索简介
    Mybatis-plus分页查询不生效之问题排查
    基于CentOS 7.9离线安装CM6.3.1和CDH6.3.2大数据平台
    (1)微服务是什么?它的优缺点有哪些?
    目标检测1——RoI Pooling和RoI Align
    压力测试总共需要几个步骤?思路总结篇
    PPT 生成整数序列字典序的r-组合算法
  • 原文地址:https://blog.csdn.net/qq_39650208/article/details/133859344