Foreach Loops: Accessing GameObjects with different Components

Hello, I´ve got a pretty basic problem with a foreach loop: I created an array of GameObjects which contains those GOs tagged as “flammable”. In the Start function, I would like to deactivate several components which shall be activated later. However, not every tagged GameObject has one of those Components, but in my understanding this shouldn´t be a problem as “GetComponent<>()” returns null if no Component is found, right?

So, when using the script no errors are displayed, but the script doesn´t work at all. Any ideas? Thanks in advance.

public class rauchentwicklung_tagged : MonoBehaviour{

	public GameObject[] flammables;
	
	void Start(){

flammables=GameObject.FindGameObjectsWithTag("flammable");


foreach (GameObject flame in flammables) {

GetComponent<AudioSource>().enabled = false;
GetComponent<Animator>().enabled = false;
GetComponent<ParticleSystem>().enableEmission = false;
	}
}

I think you should use flame.gameObject.GetComponent() and then your instruction.