开发者问题收集

使用 map 访问 React 中的对象

2022-02-18
26

尽管我已经说过它是一个数组,但我在访问对象内部的键/值时仍然遇到一些困难。 (.map 给了我错误)

使用 axios post 我在响应中有此类型

 type response = {
    data: [];
  };

来自 API 的响应:

"data": {
        "thisoneineed": false,
        "response": [{
            "ID": "1234",
        }],
        "message": "this is a test message",
    }

在我的组件中,我从 redux 状态获取此信息(我在响应后将其保存在状态中)

当我尝试这个时:

Object.entries(state).map(([key, value]) => {
  console.log(key);
})

它给了我数组内的所有键。

我需要做的是根据键值访问值,因此我这样做了:(在组件内部)

 const insurance = useSelector(
    (state: AppState) => state.session.data
);

    Object.entries(insurance).map(([key, value]) => {
      console.log(key[thisoneineed]);
    })

这给出了:

TS2304: Cannot find name 'thisoneineed'.

我想知道如何访问成功键并获取值。

1个回答

您已将类型定义为

type response = {
    data: [];
  };

这意味着它是一个空数组,无论是作为 hack 尝试将其更改为 any 直到您找出响应的确切类型,然后为其指定正确的类型

EDIT::

您可以尝试这个

 const insurance = useSelector(
    (state: AppState) => state.session.data
) as any;

console.log(insurance.thisoneineed)

PS:我不会建议保留那里的任何内容,但直到您找出响应的确切类型,您可以保留它

Sumanth Madishetty
2022-02-18