我有几个输入控件来捕获用户界面中的文字,名为' First Name'和'姓氏'。想要根据区域设置订购这些控件。例如,如果locale为en,则名字应遵循姓氏。否则,如果locale是ja,则姓氏应该跟在名字后面。
我能想到的唯一解决方案是条件陈述。
我做了一点google,也探索过react-intl,但没有多大帮助。有没有更好的方法来根据区域设置处理控件的排序?
答案 0 :(得分:1)
首先,您需要一个代表您数据的对象:
const fields = [
{key: 'firstName', en: 'First Name', fr: 'Prenom'},
{key: 'lastName', en: 'Last Name', fr: 'Nom'}
];
然后您可以按照自己喜欢的方式对其进行排序:
const locale = 'fr'; // Can be anything here, based on your config
const sortedFields = fields.sort((a, b) => {
if (a[locale] > b[locale]) {
return 1;
}
if (a[locale] < b[locale]) {
return -1;
}
return 0;
});
对字段进行排序后,您可以渲染组件:
render() {
return <div>
{sortedFields.map(f => <span>{f.key}</span>)}
</div>;
}