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


    父组件通过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;

    效果图:

  • 相关阅读:
    菜单组件Menu
    国庆作业 day 10.1
    有哪些不为人知的安全运维小技巧?
    为什么游戏里的都是伪随机,做不出真随机?
    深入理解树状数组
    期货开户云流程和注意事项
    windows (win11) vscode配置WSL(ubuntu)终端完美解读
    winfrom .net 6使用EF Core,使用的是Code First代码先行
    flask配置文件、路由设置、模板语法、请求与响应、session使用、闪现功能(flash)
    八、MFC对话框
  • 原文地址:https://blog.csdn.net/qq_39650208/article/details/133859344