如何在React应用中调用导入的助手功能?

时间:2019-03-19 03:36:11

标签: javascript reactjs

我有一个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)

看起来不叫排序吗?我在做什么错了?

2 个答案:

答案 0 :(得分:1)

由于您使用导出默认设置,因此只需致电

let result = myData.sort(help)

答案 1 :(得分:1)

在app.js中,您正在呼叫

let result = myData.sort(help.sortModel)

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

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

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

您将改为:

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

,然后在以import help from './sortHelper.js'格式导入app.js时,您可以通过help.sortModel

访问它