用对象数组反应状态字段
React State Fields with Array of Objects
我在使用我的 React 状态时遇到问题。下面的设置有效,我可以访问我需要的数据,但是我希望扩展 'questions' 字段,使其成为一个对象数组而不是单个对象。
this.state = {
ballots: [
{
id: '2222' ,
title: 'Test Ballot',
questions: {title: 'Question 1', option: 'option 1' }
}
]
}
期待这样的状态
this.state = {
ballots: [
{
id: '2222' ,
title: 'Test Ballot',
questions: [{title: 'Question 1', options: ['option 1', 'option 2', 'option 3'] }, {title: 'Question 2', option: ['option 1', 'option 2', 'option 3']}]
}
]
}
我正在将这些值映射到另一个组件,如下所示。
return (
<div className='ballot-page'>
{this.state.ballots.map(
({id, ...props}) => (
<BallotForm key={id} {...props} />
)
)}
</div>
);
我是否需要映射所有 'ballots' 然后再次映射每个 'questions' 以获得其中的所有字段?如果我能更好地澄清这一点,请告诉我。下面是 BallotForm 组件。
const BallotForm = ({ title, questions }) => (
<div className='ballot-form-page'>
<div className='ballot-form'>
<div className='ballot-title'>{title}</div>
<span>{questions.title}</span>
<form>
<span>{questions.option}</span>
<input type='checkbox'></input>
</form>
</div>
</div>
);
Would I need to map all the 'ballots' and then map again over each of the 'questions' to get all of the fields within it?
是的,您必须再次映射每个 'questions' 以获得其中的所有字段
const BallotForm = ({ title, questions }) => (
<div className='ballot-form-page'>
<div className='ballot-form'>
<div className='ballot-title'>{title}</div>
{
questions.map((singleQue) => {
return (<>
<span>{singleQue.title}</span>
<form>
<span>{singleQue.option.join('')}</span>
<input type='checkbox'></input>
</form>
</>)
})
}
</div>
</div>
);
我在使用我的 React 状态时遇到问题。下面的设置有效,我可以访问我需要的数据,但是我希望扩展 'questions' 字段,使其成为一个对象数组而不是单个对象。
this.state = {
ballots: [
{
id: '2222' ,
title: 'Test Ballot',
questions: {title: 'Question 1', option: 'option 1' }
}
]
}
期待这样的状态
this.state = {
ballots: [
{
id: '2222' ,
title: 'Test Ballot',
questions: [{title: 'Question 1', options: ['option 1', 'option 2', 'option 3'] }, {title: 'Question 2', option: ['option 1', 'option 2', 'option 3']}]
}
]
}
我正在将这些值映射到另一个组件,如下所示。
return (
<div className='ballot-page'>
{this.state.ballots.map(
({id, ...props}) => (
<BallotForm key={id} {...props} />
)
)}
</div>
);
我是否需要映射所有 'ballots' 然后再次映射每个 'questions' 以获得其中的所有字段?如果我能更好地澄清这一点,请告诉我。下面是 BallotForm 组件。
const BallotForm = ({ title, questions }) => (
<div className='ballot-form-page'>
<div className='ballot-form'>
<div className='ballot-title'>{title}</div>
<span>{questions.title}</span>
<form>
<span>{questions.option}</span>
<input type='checkbox'></input>
</form>
</div>
</div>
);
Would I need to map all the 'ballots' and then map again over each of the 'questions' to get all of the fields within it?
是的,您必须再次映射每个 'questions' 以获得其中的所有字段
const BallotForm = ({ title, questions }) => (
<div className='ballot-form-page'>
<div className='ballot-form'>
<div className='ballot-title'>{title}</div>
{
questions.map((singleQue) => {
return (<>
<span>{singleQue.title}</span>
<form>
<span>{singleQue.option.join('')}</span>
<input type='checkbox'></input>
</form>
</>)
})
}
</div>
</div>
);