Hello to edit a property there are several you need to use.
is some exampels.
With this you can`t edit the property at runtime.
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Weapon")
float LastFiredTime;
If you want to have it editable at runtime, you need to do it like this
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Weapon")
float LastFiredTime;
For a component e.g: UActorComponent:: It can be like this.
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Weapon")
TSubobjectPtr<UActorComponent> SomeComponent;
Hope it helps.