在 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
函数会被调用,然后可以进行相应的处理。