react 如何收到setValue 的更新
我想要做的功能子组件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})
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没人吗 求问
state是组件内部封闭的,无法在外部获取,如果想获取的话,一是在变更的同时调用 props.xxx 方法将值传给上层组件,二是利用context,redux之类的来全局存储这个state