Custom FButtonStyle on heap?

I have a UWidget class wrapping a set of Slate widgets (SBox → SButton → STextBlock). The SButton is getting a custom FButtonStyle that I define in the UWidget’s RebuildWidget().

The issue is, sometimes I get a null pointer crash when I click on the button, and sometimes I don’t. When I replace my custom FButtonStyle with a premade one, the crash goes away, so I know that the issue is in my implementation of the button style.

I think the issue is that I’m defining the FButtonStyle as a local variable and telling the widget to reference that variable, leading to a dangling reference. I’m unsure of how to allocate the FButtonStyle on the heap though, since I can’t just use the “new” keyword and make the variable a pointer.

TSharedRef<SWidget> UForestObject::RebuildWidget()
	const FButtonStyle NoBorder = FButtonStyle()
		.SetNormalPadding(FMargin(0, 0, 0, 0))
		.SetPressedPadding(FMargin(0, 0, 0, 0));

	TSharedPtr<SBox> MyBox = SNew(SBox)
			.OnClicked(BIND_UOBJECT_DELEGATE(FOnClicked, SwitchOnClick))
				.Font(FSlateFontInfo("Roboto", 22))

	return MyBox.ToSharedRef();

The end goal is to get a NoBorder button style that doesn’t move when clicked (unlike the premade “NoBorder”). How would I go about doing this properly?

Removing the const tag and moving the FButtonStyle to the header seems to have fixed it.