关于useEffect的通信监听(更新ing)

两种关于useEffect的通信监听

1.对PubSub订阅——发布的监听

注意:它应用在订阅组件一直在的情况,一旦发布数据页面跳转,页面上A经历:出现、消失、出现,那么A订阅组件是接收不到消息的

2.对location信息的监听

注意:有时候需要通过按钮点击事件,触发页面跳转,会用到useNavigate(),用法百度很多,这里需要注意的是要判断location.state是否为空,因为不只是携带参数的页面跳转,还有无携带参数直接跳转的,打个样:

 

  const [bookList, setBookList] = useState([
    { id: '001', name: "示例1", author: '示例1', publisher: '示例1',img:''}
    ,{ id: '002', name: "示例2", author: '示例2', publisher: '示例2',img:''}
  ]);
  const location = useLocation();
  // // 监测搜索框的书籍book是否提交到选择列表页
  useEffect(() => {
    console.log(111111)
    if(location.state===null) {return}
    if(location.state) {
      setBookList(bookList=>[...bookList,...location.state])
      console.log('我是书籍列表页过来的',location.state)
    }
    // console.log('我是设置轮播构图页:',bookList)
  },[location.state])

 

待更。。。

 

posted @ 2022-08-22 14:43  乔十六  阅读(294)  评论(0编辑  收藏  举报