Heim > Fragen und Antworten > Hauptteil
Ich habe eine Reihe von Antworten, sortiert nach der Frage, zu der sie gehören, etwa so:
sortedAnswers= [[Answer1, Answer2, Answer3, Answer4],[AnswerA, AnswerB, AnswerC, AnswerD]...]
Ich versuche, eine Liste von ListItemButton in React zu rendern. Ich habe es versucht
<ButtonGroup fullWidth orientation='vertical' onClick={handleSubmit} onChange={handleChange} > {sortedAnswers.map((item) => <ListItemButton>{item}</ListItemButton> )} </ButtonGroup>
Aber es hat nicht wie erwartet funktioniert, ich habe Folgendes bekommen:
Ich möchte, dass jede Antwort einen ListItemButton hat, also 4 Schaltflächen pro Frage. Wie kann ich die Antwort für das erste Array in der Schaltfläche erhalten?
P粉2620731762023-09-07 09:55:31
根据您希望布局的外观,使用嵌套循环来迭代所有答案:
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粉1059715142023-09-07 09:02:29
正如您提到的错误:无法读取未定义的属性(读取“地图”)
,请在映射之前添加条件检查。
{sortedAnswers.length > 0 && ( <ButtonGroup fullWidth orientation='vertical' onClick={handleSubmit} onChange={handleChange}> {sortedAnswers[0].map((answer, index) => ( <ListItemButton key={index}>{answer}</ListItemButton> ))} </ButtonGroup> )}