gpt4 book ai didi

javascript - 将数组中的数据映射到子组件和父组件中

转载 作者:行者123 更新时间:2023-11-28 12:56:03 25 4
gpt4 key购买 nike

我将数据存储在数组中的 data.js 文件中。我在子组件中显示该数据(仅数组中的第一个对象)。我想映射父组件中的相同数组(通过渲染 <ChildComponent> )。我怎样才能做到这一点?

数据.js

export default {
accordionItems: [
{
id: 1,
title: 'Why is my car not green?',
answer: 'We ran out of green color',
},
{
id: 2,
title: 'Where have all the drivers gone?',
answer: 'It\'s lunch time',
},
{
id: 3,
title: 'Do you have a book of complains',
answer: 'You can write at info@mail.eu',
},
],
};

子组件

import Data from './data';

class AccordionItem extends Component {
constructor(props) {
super(props);
this.state = {
question: Data.accordionItems[0], //if I remove [0], no data is rendered
};
}

return (
<div >
<div>
<p>{question.title}</p>
<button>toggle</button>
</div>
<p>{question.answer}</p>
<hr />
</div>
);

父组件

import AccordionItem from './AccordionItem';
import Data from './data';


class Accordion extends Component {
constructor(props) {
super(props);
this.state = {
accordionItems: Data.accordionItems,
};
}
render() {
const { accordionItems } = this.state;
return accordionItems.map(accordionItem => (
<AccordionItem key={accordionItem.id} />

我想从父组件中的“数据”数组中获取所有 3 个对象,现在我只使用第一个对象获取 3 个相同的组件。

最佳答案

将项目作为 Prop 传递下去:

 <AccordionItem question={accordionItem} ... />

您可以在 render() 方法中访问它:

render() {
const { question } = this.props;

return (
<div >
<div>
<p>{question.title}</p>
<button>toggle</button>
</div>
<p>{question.answer}</p>
</div>
);
}

您根本不应该使用状态。

关于javascript - 将数组中的数据映射到子组件和父组件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55503145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com