在 React 中,子组件可以通过 componentDidUpdate
钩子函数来监听父组件的 props 变化。这个钩子函数会在组件更新之后调用,可以通过比较前后的 props 值来判断是否发生了变化。
以下是一个示例代码,展示了父组件 props 变化时子组件的监听:
import React, { Component } from 'react'; class ParentComponent extends Component { constructor(props) { super(props); this.state = { value: 0 }; } handleClick = () => { this.setState(prevState => ({ value: prevState.value + 1 })); } render() { const { value } = this.state; return ( <div> <button onClick={this.handleClick}>Increase</button> <ChildComponent value={value} /> </div> ); } } class ChildComponent extends Component { componentDidUpdate(prevProps) { if (prevProps.value !== this.props.value) { console.log('Prop value has changed'); } } render() { const { value } = this.props; return ( <div> <p>Value: {value}</p> </div> ); } } export default ParentComponent;
在上面的示例中,当父组件的 value
值发生变化时,子组件的 componentDidUpdate
函数会被调用,然后可以进行相应的处理。