我有一个CRA应用程序,由于某种原因尝试排序,因此它不会调用名为sortModel的帮助函数:

let rankingCommercial =
      {
        'Actual':1,
        'Projected':2,
        'Proforma':3
      }



    let rankingAgribusiness =
    {
      'Historical':1,
      'Actual':2,
      'Projected':3,
      'Proforma':4
    }

export default function sortModel(item1,item2)
{
    console.log('start sort function')
    if (item1.model ==='Commercial'  && item2.model ==='Commercial') {


        if (rankingCommercial[item1.type]> rankingCommercial[item2.type])
        {
            return 1;
        }
        else{
            return -1;
        }
    }

    if (item1.model ==='Agribusiness' && item2.model ==='Agribusiness' ){
        if (rankingAgribusiness[item1.rank]> rankingAgribusiness[item2.rank])
        {
            return 1;
        }
        else{
            return -1;
        }
    }



}


app.js看起来像这样:

import help from './sortHelper.js'


...

let result = myData.sort(help.sortModel)


看起来不叫排序?我究竟做错了什么?

最佳答案

在您的app.js中,您正在调用

let result = myData.sort(help.sortModel)


并从help导入'./sortHelper.js',但是,在您的排序模型脚本中,您将sortModel作为默认导出,因此,当您导入help时,help成为sortModel函数的别名,即sortModel不是帮助的嵌套属性,但本身就是帮助。

如果将sortModel作为嵌套属性访问,则在您的sortModel脚本中,而不是:

export default function sortModel(item1,item2)
  {
     // your sort function code here
  }


相反,您将拥有类似:

export default helpFunctions = {
  sortModel: (item1, item1) {
    // your sort function code here
  }
}


然后在您的app.js中,以import help from './sortHelper.js'导入时,您可以通过help.sortModel进行访问

07-24 09:21