我目前的代码是这样的:
renderDiagnosisCodeValue(){
return _.map(this.state.diagnosisData && this.state.diagnosisData, diagnosisValues => {
this.setState({
diagnosisReturnedValue: diagnosisValues[0].diagnosisCode
})
return(
<option key={diagnosisValues.id} value={diagnosisValues.diagnosisCode}>{diagnosisValues.diagnosisName}</option>
)
});
}
但它还给我Uncaught (in promise) TypeError: Cannot read property 'diagnosisCode' of undefined
我想这样做的原因是因为我想将我的初始状态设置为第一个object.value。这个<option>
位于onChange事件的<select>
听证会内,但如果用户决定选择第一个选项而不触发onChange处理程序,则该值将为空,这就是为什么我需要设置它作为初始状态。
答案 0 :(得分:1)
您无法在render方法中调用setState。您应该做的是在获取数据后设置初始状态。因此,您应该将this.setState
移至componentDidMount
或获取初始数据的任何位置。
或者真正的肮脏方法是:
this.setState({
diagnosisReturnedValue: this.state.diagnosisData[0].diagnosisValues[0].diagnosisCode
})