I ran into the very same issue today. Turns out SwiftData does not support force-unwrap in Predicate. So you can try using if-let or .flatMap.
Using if-let worked for me, so something like this may work for you:
private struct TransactionItemsView: View {
init(journal: Journal, budgetMode: Bool) {
let journalID = journal.id!
_entries = .init(filter: #Predicate {
if let journal = $0.journal, let id = journal.id {
id == journalID
} else {
false
}
}, sort: \.date, order: .reverse)
}
@Query var entries: [Entry]
...
}
I did submit feedback on this: FB13202879
Post
Replies
Boosts
Views
Activity
Looks like you can use the contentShape modifier.
Button(action: {}) {
Text("Button")
.padding()
}
.contentShape(RoundedRectangle(cornerRadius: 8, style: .continuous))
.hoverEffect()
Perhaps not an elegant solution, but you can set the fetch request in the init of your View.
private var filteredFetchRequest: FetchRequest<Item>
private var filteredItems: FetchedResults<Item> {
		filteredFetchRequest.wrappedValue
}
init(filter: String) {
		filteredFetchRequest = FetchRequest<Item>(entity: Item.entity(), sortDescriptors: [], predicate: NSPredicate(format: "title BEGINSWITH %@", filter))
}