Every once in a while, if you are lonely or your current task is sporadic and slow, it makes sense to bring your computer to the dinner table and casually work while being part of the party. However, if this is your environment 40 hours a week, its highly taxing to productivity. My only answer is to mute all Slack notifications or turn off Slack all together. This works in the short term, but in the long term I bet it will be detrimental as I wont be seen as a "helpful" person that answers questions. Ironically, I think it's exactly those types of qualities that will help you to get promoted. Our Slack rewards the developer that just "hangs out" and answers questions all day instead of getting meaningful work done.
That being said, I think the problem isn't necessarily Slack, but large, poorly organized organization. Personally, I am part of a dozen "catch all" Slack channels that put me into direct contact with over 100 people. That might make sense for some jobs, but it's absurd for a software developer. My actual day to day work involves mainly working with a few developers and a manager or two. My Slack should reflect that - it should literally just be a chat between these 5 people.
The rest of the organization should not be able to Slack me that easily, and instead only be able to contact me through a triage process. If there is really a question from someone that I am best qualified to answer, then I am willing to answer it, but they should have to first determine that from other, more external facing people. So I think the ultimate problem with Slack is that it makes it too easy for too many loosely related people to contact each other. It's like giving every passenger in the airplane a way to send a message to the pilot.