Javascript 无法读取未定义的';地图';财产
单击名为gameIp functions的按钮后,我从数据库下载了一组问题和答案,例如:Javascript 无法读取未定义的';地图';财产,javascript,reactjs,Javascript,Reactjs,单击名为gameIp functions的按钮后,我从数据库下载了一组问题和答案,例如: state = { qBank: { Correct: "Tomek" Question 1: "What is your name?" RouteId: 1 Answers: ["ala", "ola", "Tomek", "jan"] } } 它指定给某个名称“if(id==point.RouteId)” 问题在于未捕获的TypeEr
state = {
qBank: {
Correct: "Tomek"
Question 1: "What is your name?"
RouteId: 1
Answers: ["ala", "ola", "Tomek", "jan"]
}
}
它指定给某个名称“if(id==point.RouteId)”
问题在于未捕获的TypeError版本中弹出的错误:无法读取未定义的“map”属性。我不能处理这个问题。请求有经验的程序员查看我犯的错误
gameIp(id) {
const newQuestion2 = []
for (const point of this.state.qBank) {
if (id === point.RouteId) {
newQuestion2.push({
question: point.Question1,
answers: [...point.Answers],
correct: point.Correct,
id: point.Id
});
}
}
this.setState({ qBank: newQuestion2 })
}
在渲染方法中,我显示为:
{this.state.qBank.map(({ question, answers, correct, id }) => (
<QuestionBox key={id} question={question} options={answers} selected={answer => this.computeAnswer(answer, correct)} />
)
)}
{this.state.qBank.map({问题,答案,正确,id})=>(
this.computeAnswer(答案,正确)}/>
)
)}
提问框如下所示:
import React, { useState } from 'react';
const QuestionBox = ({ question, options, selected }) => {
const [answers, setAnswer] = useState(options);
return (
<div className="questionBox">
<div className="question">{question}</div>
{answers.map((text, id) => (
<button key={id} className="answerBtn" onClick={() => {
setAnswer([text]);
selected(text)
}}>{text}</button>
))}
</div>
)
}
export default QuestionBox;
import React,{useState}来自“React”;
const QuestionBox=({question,options,selected})=>{
const[answers,setAnswer]=使用状态(选项);
返回(
{问题}
{answers.map((文本,id)=>(
{
setAnswer([text]);
选定(文本)
}}>{text}
))}
)
}
导出默认问题框;
代码中有两个.map
-哪一个是导致错误的原因?上述错误发生在组件中:因此答案
未定义。。。如果您使用(答案| |[]).map((文本,id)=>{
错误是否消失?是的,奇怪:如果您是新手,请记住您应该尝试使用。您可以用来重现同一问题的代码越少,其他人就越容易帮助您。:)代码中有两个.map
-哪一个导致了错误?上面的错误发生在组件中:因此答案
未定义…如果您这样做(答案| |[])。map((文本,id)=>{
错误消失了吗?是的,很奇怪:如果你是新手,请记住你应该尝试使用a。你可以用来重现相同问题的代码越少,其他人就越容易帮助你。:)