我正在使用此React Native程序包:https://github.com/gcanti/tcomb-form-native用于显示和捕获表单输入。
我根据自定义API响应显示选择列表的问题。
{
"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"
}
]
}
}
嗯,文档确实提到了根据枚举填充选择列表
const Country = t.enums({
'IT': 'Italy',
'US': 'United States'
}, 'Country');
有关将自定义API响应转换为提供的枚举格式的任何指导吗?如果我错了,请纠正我。
答案 0 :(得分:1)
您没有将功能传递给t.enums
。只是结果转换。
例如,
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"
}
]
}
}
通过此转换,
let convertedResult = res.response.countries.reduce(function ( result, current ) {
result[ current.country_code ] = current.country_name;
return result;
}, {});
你得到了
{
'MY': 'Malaysia',
'SG': 'Singapore',
'BN': 'Brunei',
'KH': 'Cambodia'
}
然后将其传递给t.enums
const Country = t.enums(convertedResult, 'Country');