C++ function does not show in Blueprint when TArray is a parameter UNLESS it is const

Can anyone tell me why SetItems() does not show up in the derived blueprint if I remove const from before the TArray on line

1) UFUNCTION(BlueprintNativeEvent, Category = "Inventory")
2) void SetItems(const TArray<FItemData>& ItemDatas); //THIS LINE. REMOVING CONST causes this function to NOT be inside of BP
3) void SetItems_Implementation(TArray<FItemData>& ItemDatas);

4) void UInventoryWidget::SetItems_Implementation(TArray<FItemData>& ItemDatas)
5) {

6) }

The function should still be there but in “overrides” since parameters passed by reference becomes return values. You can change this behavior by adding UPARAM(ref)

UFUNCTION(BlueprintNativeEvent, Category = "Inventory")
void SetItems(UPARAM(ref) TArray< FItemData>& ItemDatas);