Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UI控件JS、React的排序_Javascript_Reactjs - Fatal编程技术网

Javascript UI控件JS、React的排序

Javascript UI控件JS、React的排序,javascript,reactjs,Javascript,Reactjs,我有两个输入控件来捕获UI中的文本,分别称为“名字”和“姓氏”。要根据区域设置对这些控件进行排序。例如,如果区域设置为en,则姓氏后应加上名字。否则,如果区域设置为ja,则姓氏应跟在名字后面 我能想到的唯一解决办法是使用条件语句 我做过一点谷歌,探索过react intl,但帮不了什么忙。是否有更好的方法根据区域设置处理控件顺序?首先,您需要一个表示数据的对象: const fields = [ {key: 'firstName', en: 'First Name', fr: 'Prenom

我有两个输入控件来捕获UI中的文本,分别称为“名字”和“姓氏”。要根据区域设置对这些控件进行排序。例如,如果区域设置为en,则姓氏后应加上名字。否则,如果区域设置为ja,则姓氏应跟在名字后面

我能想到的唯一解决办法是使用条件语句


我做过一点谷歌,探索过react intl,但帮不了什么忙。是否有更好的方法根据区域设置处理控件顺序?

首先,您需要一个表示数据的对象:

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;
});
const locale='fr';//根据您的配置,这里可以是任何内容
const sortedFields=字段。排序((a,b)=>{
如果(a[locale]>b[locale]){
返回1;
}
if(a[locale]
字段排序后,可以渲染组件:

render() {
  return <div>
    {sortedFields.map(f => <span>{f.key}</span>)}
  </div>;
}
render(){
返回
{sortedFields.map(f=>{f.key}}
;
}