Browse Source

lesson

pull/99/head
jingxun 2 years ago
parent
commit
38609c72fd
  1. 7
      day24/note/lesson072_subscriptions_pubsub.md

7
day24/note/lesson072_subscriptions_pubsub.md

@ -118,17 +118,18 @@ export default class List extends Component {
state = {...};
componentDidMount() {
PubSub.subscribe("search", (msg, data) => {
console.log(msg, data);
this.token = PubSub.subscribe("search", (_, stateObj) => {
console.log(stateObj);
});
}
componentWillUnmount(){PubSub.unsubscribe(this.token);}
render() {...}
}
```
我们来看我们的`componentDidMount`钩子,我们订阅`search`这个消息,大家看我们是不是没有先定义订阅者的回调函数啊?我们直接在传参的时候直接用箭头函数来写回调就行了,没必要还单独定义一下。那么我们来看我买的回调函数,是不是就接受了`msg`和数据,然后在控制台把`msg`和数据输出一下。那么我们已经完成订阅了,那么是不是要在`Search`组件中来发布消息了啊?
我们来看我们的`componentDidMount`钩子,我们订阅`search`这个消息,大家看我们是不是没有先定义订阅者的回调函数啊?我们直接在传参的时候直接用箭头函数来写回调就行了,没必要还单独定义一下。那么我们来看我买的回调函数,是不是就接受了`msg`和数据,然后在控制台把`msg`和数据输出一下。既然订阅了,我们肯定就要取消订阅,那么在什么时候取消订阅呢?是不是在组件即将要被卸载的时候取消,那么`componentWillUnmount`钩子就派上用场了。大家如果生命周期有所遗忘的话,赶紧回去做一些复习。那么我们已经完成订阅了,那么是不是要在`Search`组件中来发布消息了啊?
```jsx
export default class Search extends Component {

Loading…
Cancel
Save