我正在使用react和redux作爲我的應用程序。我的問題是我收到2次我的道具,第一次是未定義的,第二次是好的。所以我不能使用道具。React reducer調用兩次
import ...
class Home extends Component {
//some code logic
render(){
console.log(this.props.header);
const header = this.props.header;
return (
<Welcome title={header.title} />
)
}
}
const mapStateToProps = (state) => {
return {
header: _.find(state.header, { 'page': 'accueil' })
}
}
export default connect(mapStateToProps)(Home);
的console.log給我2回答: 1 /未定義 2/OBJ(即我所需要的)的陣列
遺漏的類型錯誤:無法讀取的未定義的屬性稱號
定義需要多一點到這裏去。什麼時候設置了state.header? API調用之後?這可能與將'if(!this.props.header)返回null'到'render'函數的開始一樣簡單,但這可能只會隱藏問題並且不能解決原因。 –
是的,我從API調用它。所以,如果我把它傳遞給孩子它不起作用,但如果我在這個組件內部正常循環,它工作得很好。 – Nicks
如果是這樣的話,在第一次渲染時(它還沒有獲得數據)它是'undefined'並不意外。返回'null'並不是在組件內部做一個「循環」,而是說有沒有渲染,在初始渲染的情況下沒有。您還可以返回某種「加載」組件而不是「空」,以獲得更好的用戶體驗。 –