Repository: flutter
Issue: [Proposal] Able to rebuild Draggable's feedback while dragging it
Labels: framework,c: proposal,P2,team-framework,triaged-framework

### Steps to reproduce

1. Run the code below
2. Drag the blue box
3. Notice the red box (child while dragging) updates with the drag position while green box (feedback) retains the value at start

### Expected results

Given Flutter's code conventions, I expect the feedback widget to update on each rebuild.

If that's not possible for technical reasons, then the documentation should be clear on how to pass information to that child to e.g. highlighting when hovering a DragTarget.

### Actual results

The target child retains the state passed at instantiation.

### Code sample

<details open><summary>Code sample</summary>

```dart
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: 'Flutter Demo',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  var _speed = Offset.zero;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Stack(
          children: [
            Draggable(
              onDragUpdate: _onDragUpdate,
              onDragStarted: () => print('Start'),
              onDragCompleted: () => print('complete'),
              onDragEnd: (details) => print('end'),
              onDraggableCanceled: (velocity, offset) => print('cancelled'),
              feedback: Container(
                color: Colors.green,
                width: 100,
                height: 100,
                child: Text(_speed.toString(),
                    style: Theme.of(context).textTheme.bodyMedium),
              ),
              childWhenDragging: Container(
                color: Colors.red,
                width: 100,
                height: 100,
                child: Text(_speed.toString()),
              ),
              child: Container(
                color: Colors.blue,
                width: 100,
                height: 100,
                child: Text(_speed.toString()),
              ),
            ),
          ],
        ),
      ),
    );
  }

  void _onDragUpdate(DragUpdateDetails details) {
    setState(() => _speed = details.delta);
  }
}

```

</details>


### Screenshots or Video

<details open>
<summary>Screenshots / Video demonstration</summary>


https://github.com/flutter/flutter/assets/1006207/c9a88e45-0d4b-4021-89ef-ab88179920e7



</details>


### Logs

_No response_

### Flutter Doctor output

<details open><summary>Doctor output</summary>

```console
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.19.6, on Fedora Linux 40 (Workstation Edition)
    6.8.8-300.fc40.x86_64, locale en_GB.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[✓] IntelliJ IDEA Community Edition (version 2024.1)
[✓] VS Code (version 1.88.0)
[✓] Connected device (2 available)
[✓] Network resources

! Doctor found issues in 1 category.

```

</details>