Reactjs 如何将动态对象数组的类型声明为react state?
我需要声明一个对象数组,但与StackOverflow上的其他答案不同,我的对象在运行时是动态的 例如 可能的 [{id:1,random1:1,random1:1,random1:1}] 可能的 [{id:2,p:p2,p2:o2}] 我有数据:{}[]但是我把any放在哪里Reactjs 如何将动态对象数组的类型声明为react state?,reactjs,typescript,Reactjs,Typescript,我需要声明一个对象数组,但与StackOverflow上的其他答案不同,我的对象在运行时是动态的 例如 可能的 [{id:1,random1:1,random1:1,random1:1}] 可能的 [{id:2,p:p2,p2:o2}] 我有数据:{}[]但是我把any放在哪里 const [data, setData] = useState({ data: {}[], isFetching: false }); 或者我可以用一种方式来定义它,我可以说总是有一个id:string索引,但其余的
const [data, setData] = useState({ data: {}[], isFetching: false });
或者我可以用一种方式来定义它,我可以说总是有一个id:string索引,但其余的可以是任意的
像这样的东西,这是无效的,但也许像这样的东西是
const [data, setData] = useState({ data: { [index: string]: any }[];, isFetching: false });
您可以声明辅助类型,以指定动态结构并保持代码整洁:
type Data = {
data: { [index: string]: any }[];
isFetching: boolean;
}
// ...
useState<Data>({ data: [], isFetching: false });
// or
useState({ data: [], isFetching: false } as Data);
const [isFetching, setIsFetching] = useState(false);
const [data, setData] = useState([] as ({ [index: string]: any }[]));