AddComponent adding script to object twice

I’m somewhat new to Unity, about two months in, and I’m having problems with the script below:

public GameObject start,title;
    
	IEnumerator OnTriggerEnter(Collider col) {
		if(col.gameObject.tag == "Target1") {
			shouldMoveUp = true;
		}
		if(col.gameObject.tag == "Target2") {
			title.AddComponent<TextFadeIn>();
			yield return new WaitForSeconds(2);
			start.AddComponent<TextFadeIn>();
		}
	}

When the AddComponent call is made, For some reason the script TextFadeIn is being added twice to each GameObject. Any ideas why this is happening? It makes the text start fading in, then start over a couple seconds later. It only does this once and I can see the script get added to each GameObject twice in the Inspector.

Thanks,

Turns out the problem was that the objects were parent/child. I was attaching the script to the parent, which added it to the child, and then attaching it again to the child.

I didn’t try the Destroy(col.gameObject); line because I discovered the problem first.

Thanks for the reply though!