账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react中子组件state发生变化触发render函数,父组件怎么感知子组件的变化?
    49
    0

    子组件点击了按钮更改了自己的state触发render更新,并没有去更改父组件的state状态,那么父组件要怎么感知到子组件是已经重新render过了?

    父组件代码

    import React from 'react';
    import TodoItem from './TodoItem.js';
    class TodoList extends React.Component{
        constructor(){
            super();
        }
        render(){
            return (
                <div>
                    <TodoItem/>
                </div>
            )
        }
        
        
    }
    export default TodoList;

    子组件

    import React from 'react';
    
    class TodoItem extends React.Component{
        constructor(){
            super();
            this.state = {
                greet:'hi'
            }
            this.handlerChange = this.handlerChange.bind(this);
        }
        render(){
            return (
                <div>
                    <div>{this.state.greet}</div>
                    <button onClick={this.handlerChange}>改变state</button>
                </div>
            )
        }
        handlerChange(){
            this.setState(()=>{
                return{
                    greet:'hello'
                }
            })
        }
    }
    export default TodoItem;
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在React中,子组件的状态变化会导致子组件的render函数被重新调用,从而触发父组件的render函数。因此,父组件需要监听子组件的状态变化,并根据变化来做出相应的响应。

      通常,我们使用React的useEffect钩子来监听子组件的状态变化。useEffect函数的回调函数会在组件的状态发生变化时被调用。回调函数中,我们可以根据状态变化来做出相应的响应。

      以下是一个简单的例子:

      ```jsx import React from 'react';

      class ParentComponent extends React.Component { constructor(props) { super(props); this.state = { count: 0 }; }

      componentDidMount() { // 代码在这个方法中执行 }

      render() { return (

      ); } }

      class ChildComponent extends React.Component { constructor(props) { super(props); this.state = { count: 0 }; }

      componentDidMount() { // 代码在这个方法中执行 }

      render() { return (

      {this.state.count}

      ); } } ```

      在这个例子中,父组件在子组件的状态发生变化时会调用自己的componentDidMount方法。在componentDidMount方法中,我们可以根据子组件的状态变化来做出相应的响应。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部