Javascript 反应设置状态错误->;对象作为子对象无效
我继续得到以下错误Javascript 反应设置状态错误->;对象作为子对象无效,javascript,reactjs,react-hooks,setstate,Javascript,Reactjs,React Hooks,Setstate,我继续得到以下错误 对象作为React子对象无效(找到:具有键{questionId,answer}的对象)。如果要呈现子对象集合,请改用数组 我意识到这是一个很常见的错误,但我似乎无法找出它。任何正确方向的帮助或指点都会很好 const [currentQuestion, setCurrentQuestion] = useState(0) const [selectedAnswer, setAnswer] = useState('') const [savedAnswers, setS
对象作为React子对象无效(找到:具有键{questionId,answer}的对象)。如果要呈现子对象集合,请改用数组 我意识到这是一个很常见的错误,但我似乎无法找出它。任何正确方向的帮助或指点都会很好
const [currentQuestion, setCurrentQuestion] = useState(0)
const [selectedAnswer, setAnswer] = useState('')
const [savedAnswers, setSavedAnswers] = useState([])
const question = questions[currentQuestion]
const handleNextQuestion = () => {
if(currentQuestion < questions.length - 1) {
//create answer array item
const answer = {questionId: question, answer: selectedAnswer};
//add saved answer to array
setSavedAnswers(savedAnswers => [...savedAnswers, answer])
//go to next question
setCurrentQuestion(currentQuestion + 1)
//clear next answer
setAnswer('')
}
}
return (
<div className="section">
<div className="container">
<div className={styles.surveyContainer}>
<h2 className="title is-2 has-text-centered">Feel</h2>
<Progress
total = {questions.length}
current = {currentQuestion + 1}
/>
<Question
question = {question.question}
/>
<Answers
answers = {question}
selected = {selectedAnswer}
handleClick = {handleClick}
/>
</div>
<button className="button is-primary" onClick={handleNextQuestion}>Next</button>
{selectedAnswer}Selected Answers
{savedAnswers}Saved Answers
</div>
</div>
)
const[currentQuestion,setCurrentQuestion]=useState(0)
常量[selectedAnswer,setAnswer]=使用状态(“”)
const[savedAnswers,setSavedAnswers]=useState([])
常量问题=问题[当前问题]
const handleNextQuestion=()=>{
如果(当前问题[…存储应答器,应答])
//转到下一个问题
setCurrentQuestion(currentQuestion+1)
//明确下一个答案
设置应答(“”)
}
}
返回(
感觉
您需要映射答案数组。使用问题ID
作为反应键
savedAnswers.map(({ questionId, answer }) => (
<div key={questionId}>{answer}</div>
));
savedAnswers.map({questionId,answer})=>(
{答案}
));
const[currentQuestion,setCurrentQuestion]=useState(0)
也定义此属性当您让React渲染对象而不是普通元素时,通常会发生此错误。您可以显示渲染功能吗?抱歉,现在添加:){savedAnswers}保存的答案
-savedAnswers是一个数组,对吗?是保存的答案数组。不过,如果我也想打印出问题ID,该怎么办。当我这样做时,它会抛出一个错误:QuestionID:{QuestionID},AnswerID:{answer}@unicorn\u这似乎是正确的语法。错误是什么?对象作为React子对象无效(找到:具有键{id,question,answer_a,answer_b,answer_c}的对象)。如果您想呈现一组子对象,请使用数组。@unicorn\u惊奇的是question
是一个对象而不是一个基本值吗?嗯,我已经添加了一个问题的屏幕截图。您可以澄清一下“定义这个”是什么意思吗?我也不认为您逐字引用了源代码,而且您复制的内容中存在语法错误。