|
|
@ -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 { |
|
|
|