I have some Widgets on screen that render dynamically based on the contents of a Map. I've been updated the contents of the map via a text field and it's been working fine up until I've decided to move this text field to a separate class / screen. How can I correctly call setState from this separate screen and have my updates reflected when I return?

As a side note I have spent a lot of time trying to research this problem but I can't seem to wrap my head around anything other than I need to potentially use a callback function?

*NoteSection is rendered dynamically from reminders map*

```
class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

final Map<String, String> reminders = {};

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Note App'),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {
          Navigator.push(
            context,
            MaterialPageRoute(
              builder: (context) => AddNoteScreen(),
            ),
          );
        },
      ),
      body: Column(
        crossAxisAlignment: CrossAxisAlignment.end,
        children: [
          NoteSection(),
        ],
      ),
    );
  }
}

```

*Code for screen where I am updating the map is below*

```
class AddNoteScreen extends StatefulWidget {
  @override
  _AddNoteScreenState createState() => _AddNoteScreenState();
}

final titleController = TextEditingController();
final bodyController = TextEditingController();

String noteBodyText = bodyController.text;
String noteTitleText = titleController.text;

class _AddNoteScreenState extends State<AddNoteScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Note App'),
      ),
      body: Column(
        crossAxisAlignment: CrossAxisAlignment.end,
        children: [
          titleTextField,
          bodyTextField,
          Container(
            padding: EdgeInsets.only(
              right: 10,
              bottom: 10,
            ),
            child: ElevatedButton(
              style: ElevatedButton.styleFrom(
                primary: Colors.amber,
              ),
              child: Text(
                'Add Note',
                style: TextStyle(color: Colors.white),
              ),
              onPressed: () {
                setState(() {
                  noteTitleText = titleController.text;
                  noteBodyText = bodyController.text;
                  reminders[noteTitleText] = noteBodyText;
                  titleController.clear();
                  bodyController.clear();
                  Navigator.pop(context);
                });
              },
            ),
          ),
        ],
      ),
    );
  }
}

```