我正在使用 TypeScript 学习 React,我需要将响应数据转换为一个对象。
我编写了无需打字稿即可运行的代码。你能告诉我如何做到类型安全吗?
从响应中我收到以下数据:
{
"-MnI78G4UBVNSdurDCQK": {
"amount": 1,
"id": 1,
"image": {
"url": "https://store.storeimages.cdn-apple.com/4668/as-images.apple.com/is/iphone-13-pro-family-hero?wid=940&hei=1112&fmt=png-alpha&.v=1631220221000"
},
"name": "iPhone 13 Pro",
"price": 5299
},
"-MnI78IKVgJnmF_8XTZ6": {
"amount": 2,
"id": 2,
"image": {
"url": "https://cdn.x-kom.pl/i/setup/images/prod/big/product-new-big,,2019/7/pr_2019_7_17_13_43_4_952_00.jpg"
},
"name": "Macbook Air M1 16gb 512gb",
"price": 7999
}
}
Run Code Online (Sandbox Code Playgroud)
通过使用 object.entries 我正在像这样转换数据:
const transformedData = Object.entries(data).map(([key, value]) => {
return {
...value,
id: key,
};
});
Run Code Online (Sandbox Code Playgroud)
它可以工作,但没有类型安全。
我是 Next.js 和 GraphQL 世界的新手。到目前为止,我一直在使用 React 与 reduxjs 和 axios 进行 API 调用。我会学习更高级的东西,所以这是我的问题。如果我使用 apollo graphql,我有哪些本地状态管理选项?它可以由 apollo 本身处理,还是我应该使用像 redux store 这样的外部工具?