Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止在活动选项卡上调用函数?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何防止在活动选项卡上调用函数?

Javascript 如何防止在活动选项卡上调用函数?,javascript,reactjs,Javascript,Reactjs,例1: 单击选项卡1。选项卡1是活动选项卡。再次单击tab1(tab1是活动选项卡)我不想调用函数start()。单击选项卡2或选项卡3,我想调用函数start() 例2: 单击选项卡2。选项卡2是活动选项卡。再次单击选项卡2(选项卡2是活动选项卡)我不想调用函数start()。单击选项卡1或选项卡3,我想调用函数start() 代码如下: 图纸: var Tab=React.createClass({ render:function(){ 返回

例1:

单击
选项卡1
。选项卡1是活动选项卡。再次单击
tab1
(tab1是活动选项卡)我不想调用函数
start()
。单击选项卡2或选项卡3,我想调用函数
start()

例2:

单击
选项卡2
。选项卡2是活动选项卡。再次单击
选项卡2
(选项卡2是活动选项卡)我不想调用函数
start()
。单击选项卡1或选项卡3,我想调用函数
start()

代码如下:

图纸:

var Tab=React.createClass({
render:function(){
返回
  • {this.props.content}

  • } }); var Tabs=React.createClass({ getInitialState:函数(){ 返回{selectedTabId:1} }, isActive:函数(id){ 返回this.state.selectedTabId==id; }, setActiveTab:函数(SelectedTab){ 这个。start(); this.setState({selectedTabId}); }, 开始:函数(){ 返回console.log('aaa') }, render:function(){ var total=this.props.data.points.total, tabs=总计.map(函数(el,i){ 返回 },这个); return
      {tabs}
    } }); 常数数据={ 要点:{ 总数:[ {id:1,名称:'tab-1',文本:'text'}, {id:2,名称:'tab-2',文本:'text-2'}, {id:3,名称:'tab-3',文本:'text-2'} ] } } ReactDOM.render( , document.getElementById('main') );
    您可以添加一个条件来检查单击的选项卡是否已被选中,如果已被选中,请不要执行任何操作,否则请正常运行它

    setActiveTab: function (selectedTabId) {
        if(!this.isActive(selectedTabId)){
         this.start();
         this.setState({ selectedTabId }); 
        }
      },
    

    您可以添加一个条件来检查单击的选项卡是否已被选中,如果已被选中,请不要执行任何操作,否则请正常运行

    setActiveTab: function (selectedTabId) {
        if(!this.isActive(selectedTabId)){
         this.start();
         this.setState({ selectedTabId }); 
        }
      },
    

    您只需添加条件即可检查其与当前状态不相等选项卡:

    setActiveTab: function (selectedTabId) {
        if(this.state.selectedTabId!==selectedTabId){//ensure only trigger when different tab id
           this.start();
        this.setState({ selectedTabId });
        }
    
      },
    
    

    以下是

    您只需添加条件,即可检查其与当前状态选项卡的不相等:

    setActiveTab: function (selectedTabId) {
        if(this.state.selectedTabId!==selectedTabId){//ensure only trigger when different tab id
           this.start();
        this.setState({ selectedTabId });
        }
    
      },
    
    
    这是