2017-01-21 4 views
0

Ich verwende dieses React Native-Paket: https://github.com/gcanti/tcomb-form-native für Anzeige und Erfassung von Formulareingaben.Reactive Native Select List Population

Und ich habe Fragen zur Anzeige der Auswahlliste basierend auf benutzerdefinierten API-Antwort.

{ 
    "response": { 
    "countries": [ 
     { 
     "PK_country_id": 132, 
     "country_code": "MY", 
     "country_name": "Malaysia" 
     }, 
     { 
     "PK_country_id": 196, 
     "country_code": "SG", 
     "country_name": "Singapore" 
     }, 
     { 
     "PK_country_id": 32, 
     "country_code": "BN", 
     "country_name": "Brunei" 
     }, 
     { 
     "PK_country_id": 36, 
     "country_code": "KH", 
     "country_name": "Cambodia" 
     } 
    ] 
    } 
} 

Nun hat die Dokumentation erwähnte die Auswahlliste bevölkert basierend auf Aufzählungen

const Country = t.enums({ 
    'IT': 'Italy', 
    'US': 'United States' 
}, 'Country'); 

Jede mögliche Anleitung zur Transformation der benutzerdefinierten API-Antwort in die Aufzählungen Format zur Verfügung gestellt? Bitte korrigieren Sie mich, wenn ich falsch liege.

+0

Ich verstehe nicht. Transform 'Antwort. Länder zu einem Objekt wie '{ 'IT': 'Italien', 'US': 'Vereinigte Staaten' }', dann übergeben Sie es an 't.enums', es funktioniert nicht? –

+0

Sorry, aber ich bin noch neu zu reagieren-native. frage mich nur, wie ich eine Funktion in t.enums übergebe? –

Antwort

1

Die Funktion wird nicht an t.enums übergeben. Nur das Ergebnis konvertiert.

Zum Beispiel

const res = { 
    "response": { 
    "countries": [ 
     { 
     "PK_country_id": 132, 
     "country_code": "MY", 
     "country_name": "Malaysia" 
     }, 
     { 
     "PK_country_id": 196, 
     "country_code": "SG", 
     "country_name": "Singapore" 
     }, 
     { 
     "PK_country_id": 32, 
     "country_code": "BN", 
     "country_name": "Brunei" 
     }, 
     { 
     "PK_country_id": 36, 
     "country_code": "KH", 
     "country_name": "Cambodia" 
     } 
    ] 
    } 
} 

Durch diese konvertieren,

let convertedResult = res.response.countries.reduce(function (result, current) { 
    result[ current.country_code ] = current.country_name; 
    return result; 
}, {}); 

Sie erhalten

{ 
    'MY': 'Malaysia', 
    'SG': 'Singapore', 
    'BN': 'Brunei', 
    'KH': 'Cambodia' 
} 

Dann ist dieses t.enums passieren

const Country = t.enums(convertedResult, 'Country'); 
+0

Macht es Ihnen etwas aus, die folgende Codezeilensyntax zu erklären? const Land = t.enums (convertedResult, 'Country'); Was ist der Unterschied zwischen Land und Land? –

+1

Sie können [hier] (https://github.com/gcanti/tcomb-validation/blob/master/index.js) unter Zeile 87 nachsehen, die Ihnen sagen kann, wie 't.enums' funktioniert. –