2017-05-30 83 views
0

目前,我有我的代碼是這樣的:地圖上JSON對象,並設置第一object.value作爲國家

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>是一個<select>聽到一個onChange事件,但如果用戶決定選擇第一個選項而不觸發onChange處理程序的值將爲空,這就是爲什麼我需要將它設置爲初始狀態。

回答

1

您無法在渲染方法中調用setState。你應該做的是在獲取數據後設置初始狀態。因此,您應該將this.setState轉換爲componentDidMount或您要提取初始數據的位置。

還是真正的骯髒的做法是:

this.setState({ 
    diagnosisReturnedValue: this.state.diagnosisData[0].diagnosisValues[0].diagnosisCode 
}) 
+0

謝謝!我setState在哪裏我正在獲取最初的數據。非常感謝您的快速響應 – Emmanuel

相關問題