Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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 反应类型脚本自定义挂钩排序列表_Javascript_Reactjs_Typescript - Fatal编程技术网

Javascript 反应类型脚本自定义挂钩排序列表

Javascript 反应类型脚本自定义挂钩排序列表,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我试图在react中创建一个自定义钩子,根据两个参数返回一个排序数组:列表本身和一个带有我想要排序的键的字符串。 在问如何解决这个问题之前,我尝试了几种策略,花了很多时间咒骂TS,但仍然相信它有一个我没有看到的简单解决方案 钩子: type Item = { [key: string]: number | string, } function useSortList(list: Item[], key: string) { return list.sort((a: object,

我试图在react中创建一个自定义钩子,根据两个参数返回一个排序数组:列表本身和一个带有我想要排序的键的字符串。 在问如何解决这个问题之前,我尝试了几种策略,花了很多时间咒骂TS,但仍然相信它有一个我没有看到的简单解决方案

钩子:


type Item = {
  [key: string]: number | string,
}

function useSortList(list: Item[], key: string) {

  return list.sort((a: object, b: object) => a[key] > b[key] ? 1 : -1) || list;

}

export default useSortList;

a[key]>b[key]
上,我遇到了以下错误:

元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型“{}”。 在类型“{}”上找不到具有“string”类型参数的索引签名。ts(7053)

例如:我以列表的形式传递一个简单的对象数组,并尝试按“标题”对其进行排序

如何键入此排序参数以便可以将其用于任何对象数组


干杯

这是因为您使用的是
对象
类型。请尝试删除此类型批注


由于
list
变量的类型定义得很好,
list.sort
也定义得很好,因此无需尝试帮助TypeScript处理这个()。

它就在我面前!我尝试了很多种情况,并且犯了各种各样的错误,这让我变得盲目和沮丧。终于奏效了。谢谢!干杯