在渲染组件之前设置“活动标签”

时间:2019-07-07 19:40:07

标签: javascript reactjs socket.io

渲染组件时,我已经在active tab中设置了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.io时,this.setState ({})每隔几秒钟就会更新一次。渲染组件后,选项卡0处于活动状态。我单击选项卡2,然后在套接字的影响下,几秒钟后它自动返回到选项卡0。如何设置它使其不会自动返回到标签0

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

0 个答案:

没有答案