将数组的数组映射到列表
P粉668804228
P粉668804228 2023-09-06 20:15:44
0
2
519

我有一个答案数组,按它们所属的问题排序,如下所示:

sortedAnswers= [[Answer1, Answer2, Answer3, Answer4],[AnswerA, AnswerB, AnswerC, AnswerD]...]

我正在尝试在 React 中渲染 ListItemButton 的列表。我尝试过

    <ButtonGroup
      fullWidth
      orientation='vertical'
      onClick={handleSubmit}
      onChange={handleChange}
    >
      {sortedAnswers.map((item) =>
        <ListItemButton>{item}</ListItemButton> )}
    </ButtonGroup>

但它没有按预期工作,我得到了这个:

我希望每个答案都有一个 ListItemButton,因此每个问题有 4 个按钮。我怎样才能得到按钮中第一个数组的答案?

P粉668804228
P粉668804228

全部回复(2)
P粉262073176

根据您希望布局的外观,使用嵌套循环来迭代所有答案:

const sortedAnswers = [
  [Answer1, Answer2, Answer3, Answer4],
  [AnswerA, AnswerB, AnswerC, AnswerD]
];

{sortedAnswers.map(answers => (
  <ButtonGroup
    fullWidth
    orientation="vertical"
    onClick={handleSubmit}
    onChange={handleChange}
  >
    {answers.map(answer => (
      <ListItemButton>{answer}</ListItemButton>
    ))}
  </ButtonGroup>
))}
P粉105971514

正如您提到的错误:无法读取未定义的属性(读取“地图”),请在映射之前添加条件检查。

{sortedAnswers.length > 0 && (
  <ButtonGroup fullWidth orientation='vertical' onClick={handleSubmit} onChange={handleChange}>
    {sortedAnswers[0].map((answer, index) => (
      <ListItemButton key={index}>{answer}</ListItemButton>
    ))}
  </ButtonGroup>
)}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板