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