I'm having touble displaying the results of a Set<String>. I seem to get the results from Future but they don't print on screen. Here is my code:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

class SavedForms extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _SavedForms();
}

class _SavedForms extends State<SavedForms>{
  List<Card> myForms = [];

  @override
  void initState(){
    getKeys();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: <Widget>[
          ...myForms,
        ],
      ),
    );
  }

  getKeys() {
    getData().then((result) {
      result.forEach((element) {
        print("displaying ${element.toString()}");
        setState(() {
          myForms.add(new Card(
            child: Text(element.toString()),
          ));
        });
      });
    });
  }

  Future<Set<String>> getData() async {
    final prefs = await SharedPreferences.getInstance();
    final value = prefs.getKeys();
    print("got ${value.length} results");
    return value;
  }
}

The prints result show data being fetched correctly (testElement should be diplayed in screen inside a Card):

I/flutter ( 3411): got 1 results
I/flutter ( 3411): displaying testElement