我想要做的功能子组件state中的value更新了, 我的能接受到通知,要对于子组件要是无感知,用继承这种方式不行,请问要怎么做呢。
本来我是想重写setState方法,但是要是setState接受的是一个函数的时候不知道怎么写
还有一种方法就是 高阶组件的反向劫持 但是感觉这种不是很友好,我还要在基类里面添加其他方法
更新:
突然想到我这样感谢setState 方法应该是可以的,大佬看看呢
class Base extends Component {
getSnapshotBeforeUpdate(prevProps, prevState) {
// 如果value 更新了就执行
if (prevState.value) {
console.log(prevState.value)
}
}
setState (newState, callBack) {
if (typeof newState === 'function'){
super.setState((state) => {
let data = newState(state);
// 我的逻辑
retrun data;
}, callBack)
} else {
// 我的逻辑
super.setState(newState, callBack)
}
}
}
class App extends Base {
constructor (props) {
super(props);
this.state = {value: '', other:123}
}
getSnapshotBeforeUpdate(prevProps, prevState) {
// 逻辑处理
},
componentDidMount() {
this.setState({value: 123})
}
}
没人吗 求问