SLS and BFR (now called Starship), are like chalk and cheese.
SLS is a hugely expensive jobs programme. The rockets, when they launch, will be very expensive and single-use. The US taxpayer is paying for it.
SpaceX's Starship will be more capable, cost much less to develop, and will be much cheaper to launch, and should be fully reusable (both stages). SpaceX are spending their own profits (and investors money) on it.
From my point of view the SLS is not a great deal different then the BFR. From what I have read both platforms can be configured to do the same things. I think the BFR is cheaper...don't quote me on that. I really want to know if the goal of NASA is to work with commercial company's then why are we continuing to fund the SLS?