【问题标题】:How to take some data from an object?如何从对象中获取一些数据?
【发布时间】:2021-02-21 02:19:21
【问题描述】:

我必须将数据从 json 文件放到我的 reducer。 映射此文件后,我得到了一个对象,其中包含我需要的数据。

export const datas = data.properties.map(data => (<store key={Math.floor(Math.random()*1234)} author={data.value} comment={data.group} rate={data.type} />));

this is console log, I just need props from this

如何获得正常的反应表,而不是减速器状态不接受的对象? 或者如何将它实现到减速器状态以获得我需要的效果? 我很抱歉提出愚蠢的问题,我希望你能帮助我:)

【问题讨论】:

  • 我很乐意提供帮助,但我真的完全不明白你的问题。您可以编辑您的帖子以包含整个组件吗?
  • 您在 console.log 中看到的是 arraystore 元素。 props 是您传递给每个 &lt;store/&gt; 的道具:authorcommentrate
  • 这是你想要的吗? export const datas = data.properties.map(data =&gt;({author: data.value, comment: data.group, rate: data.type}));
  • 是的!非常感谢,我真的很感激,祝你有美好的一天:)

标签: json reactjs react-redux


【解决方案1】:

您发布的代码从变量data.properties 获取对象数组,并将它们映射到组件store 创建的JSX 元素数组。换行可能更易读。

export const datas = data.properties.map(
    data => (
        <store
            key={Math.floor(Math.random() * 1234)}
            author={data.value}
            comment={data.group}
            rate={data.type}
        />
    )
);

datas 中的 console.log 显示了 React JSX 元素实例数组。在您的数组中,您有 5 个对象,每个对象是一个 JSX 元素 ($$typeof: Symbol(react.element)) 和 type: "store"(组件类型),您为此元素创建的数字 key,以及一个包含所有您传递的道具:authorcommentratekeyspecial prop,因此此处不包括在内)。

您要求使用道具创建一个object,而不是创建一个store 元素。我们要获取数组data.properties 并使用.map() 方法将其映射到这个道具对象。

您在.map() 回调中使用的变量名称可以是任何名称,但作为最佳实践,我建议您不要再次使用变量名称data。重用名称称为variable shadowing,它不会导致错误,但会使您的代码非常混乱。我会改为datum

这是你想要的代码:

export const propsArray = data.properties.map(
    datum => ({
        key: Math.floor(Math.random() * 1234),
        author: datum.value,
        comment: datum.group,
        rate: datum.type,
    })
);

【讨论】:

    猜你喜欢
    • 2019-08-25
    • 2023-04-09
    • 1970-01-01
    • 2022-11-22
    • 2013-08-21
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多