首页 > 解决方案 > 在渲染组件之前设置“活动选项卡”

问题描述

渲染组件时,我已经设置了active tabin this.setState({activeTab: response.data[0].id})

componentDidMount() {
   axios.get
        axios({
            url, 
            method: "GET",
            headers: {
              'Authorization': 
            }
        })
        .then(response => {
            this.setState({
              scores: response.data,
              activeTab: response.data[0].id,   
            });
        })
        .catch(error => {
            console.log("User not enrolled.", error);
        })     
}

但是当我添加时socket.iothis.setState ({})它每隔几秒钟更新一次。渲染组件时,选项卡0处于活动状态。我点击 tab 2,然后在 sockets 的影响下,几秒钟后它自动返回到 tab 0。如何设置它使其不会自动返回 tab 0

componentDidMount() {
    const socket = socketIOClient(endpoint);
    socket.on("FromAPI", data => this.setState({ 
      scores: data,
      activeTab: data[0].id
    }));
  }

标签: javascriptreactjssocket.io

解决方案


推荐阅读