---
title: "sensoryFeedback(trigger:_:)"
framework: swiftui
role: symbol
role_heading: Instance Method
path: "swiftui/view/sensoryfeedback(trigger:_:)"
---

# sensoryFeedback(trigger:_:)

Plays feedback when returned from the feedback closure after the provided trigger value changes.

## Declaration

```swift
nonisolated func sensoryFeedback<T>(trigger: T, _ feedback: @escaping () -> SensoryFeedback?) -> some View where T : Equatable

```

## Parameters

- `trigger`: A value to monitor for changes to determine when to play.
- `feedback`: A closure to determine whether to play the feedback and what type of feedback to play when trigger changes.

## Discussion

Discussion For example, you could play different feedback for different state transitions: struct MyView: View {     @State private var isExpanded = false

var body: some View {         ContentView(isExpanded: $isExpanded)             .sensoryFeedback(trigger: isExpanded) {                 isExpanded ? .impact : nil             }     } } When the value changes, the new version of the closure will be called, so any captured values will have their values from the time that the observed value has its new value.

## See Also

### Providing haptic feedback

- [sensoryFeedback(_:trigger:)](swiftui/view/sensoryfeedback(_:trigger:).md)
- [sensoryFeedback(_:trigger:condition:)](swiftui/view/sensoryfeedback(_:trigger:condition:).md)
- [SensoryFeedback](swiftui/sensoryfeedback.md)
