【发布时间】:2018-09-07 17:08:28
【问题描述】:
如果已经在状态中选择了这样的答案,则可以正常工作????
this.state = {
answers: [
{
questionID: "1",
answerValues: "2"
}
]
};
默认空状态为this.state = { answers: [] };,控制台在checked={option.id == checked.answerValues} 显示未捕获的类型错误:无法读取未定义的属性“answerValues”。当然它不会起作用,因为对象是空的。
<input
name={name}
id={`${name}-${option.id}`}
data-question-id={questionID}
type="radio"
onChange={onChange}
value={option.id}
checked={option.id == checked.answerValues}
/> {option.value}
演示:https://codesandbox.io/s/wyymx2jvrw
JSX 中是否有任何选项可以检查仅当 answers: [] 不为空时检查的输入
【问题讨论】:
-
您遗漏了很多重要的代码。检查变量从何而来?
-
@JoelHarkes 默认情况下没有可用的检查变量。当用户从单选按钮中选择时,它正在添加到状态。您可以在链接codesandbox.io/s/mm4qrv4o6j 中看到如果用户已经选择了答案,它可以正常工作
标签: javascript json reactjs ecmascript-6 jsx