我有一个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进行访问