2016-02-16 43 views
1

ReactJS onClick事件我正在尋找一個解決方案如何防止點擊,並通過<a>標籤省第二次相同的追隨者。
這是我的代碼:其禁用點擊第二次上<a>標籤

<a className={this.followClasses(user.following)} 
 
    onClick={this.followUser.bind(this, user.id)} 
 
    disabled={user.following}> 
 
    <i className="material-icons">person-pin</i> 
 
</a>

的onClick運行其保存到DB,目前用戶要想跟隨第二個和改變顏色當前用戶和其他用戶之間的連接功能灰色到灰色。但是當我點擊它時,有可能點擊兩次,這樣用戶之間的連接就會增加一倍。正如我已經檢查,沒有這樣的attr像<a>禁用,所以有沒有其他可能的解決方案,使無法第二次點擊它?

這是的onClick回調函數:

followUser(userId){ 
    UserActions.followUser(userId); 
} 
+0

如果你想堅持你的代碼,那麼你應該使用'button'支持'disabled',否則,保持了'',你必須遵循@lupatus –

回答

1

你可以這樣做只是這樣的:

followUser(userId) { 
    if (!this.followUserClicked) { 
     this.followUserClicked = true; 
     UserActions.followUser(userId); 
    } 
} 

雖然這取決於你的結構,可能會更好地考慮將一些該值更高級別的對象不會對視圖更新產生影響。 我會建議寧可在UserActions中處理,而不是在視圖中。


你可以用你的代碼所面臨的問題是,您的節點可能不是後user.following變化重新渲染,保持user.following值組件的狀態,跟蹤變化的時候,做this.setState({following: user.following})它改變後,這將觸發視圖更新。

+0

對不起我的錯誤的建議: 「disabled = {user.following}」無法訪問,它不適用於標記 –