2017-04-18 80 views
0

看到 bundle.js:94016遺漏的類型錯誤:無法讀取屬性「的PropertyValue」在Component.render不確定 (bundle.js:94016) 錯誤在控制檯中 - 該值是來自我的動作創建者的API調用的響應 - 但是如果它在動作創建者響應中打印值,並且該邏輯也可以在組件的渲染方法中工作。我在這裏錯過什麼..?不能在控制檯讀取屬性未定義的屬性錯誤 - 陣營組件渲染方法

組件:

componentDidMount() { 
    //action creator call from component 
    this.props.getData(apiURL); 
    } 
render() { 
const propValue = this.props.apiResponseData.propertyValue; 
return (
    <div> 
    <div> 
     {(propValue === 'red') ? <RED /> : <BLUE />} 
    </div> 
    </div> 
); 

回答

0

需要的段的預先描述和代碼。我認爲你有正確的狀態,但是你沒有正確地進入你的組件。

code [10] conosle.log(this.props)插入這一行來檢查它們。

它工作正常。只要檢查你的「this.props」並找到你的propertyValue的正確路徑。

如果您沒有使用ImutableJS,它可能會這樣 「this.props.apiResponseData.count.propertyValue;」

路徑描述如下

apiResponseData => propsName

計數=> reducerName

=的PropertyValue>數據名

enter dd description here

enter image description here

+0

更新了我的代碼的問題。 http://stackoverflow.com/users/7375412/tonyy – splendidDev

+0

Uncaught TypeError:無法讀取Component.render中未定義的屬性'價格'。它是否具有「價格」的組成部分? – TonyY

+0

呀給出了相同的名稱 - 錯誤是在渲染方法,我得到的屬性值。 – splendidDev

0

既然你都可以從一個API,因此在渲染它的初始時間的響應可以不定義,因此悠得到一個錯誤

試試這個

render() { 
const propValue = null; 
if(this.props.apiResponseData) { 
    propValue = this.props.apiResponseData.propertyValue; 
} 
return (
    <div> 
    <div> 
     {(propValue === 'red') ? <RED /> : <BLUE />} 
    </div> 
    </div> 
); 
相關問題