0
因此,我檢查我的componentWillReceiveProps函數中已更改的道具。但我得到一個空錯誤。代碼:無法讀取componentWillReceiveProps中nextProps的屬性值
componentWillReceiveProps(nextProps) {
if (this.props.author.id!= nextProps.author.id) {
debugger;
this.setState({author: Object.assign({}, nextProps.author)});
}
}
當設置debbugger我似乎有值,但隨後鉻說,這是不確定的:
請告訴我,使我更糊塗的是,當我添加一個調試器的代碼runthrough ,它沒有給我任何錯誤,筆者即時得到來自被填充到輸入字段的nextProps,但我仍然得到上述錯誤之後
這裏您比較兩個布爾值,而不是檢查它們是否存在然後進行比較。它應該是 'if((this.props.author && nextProps.author)&&(this.props.author.id!== nextProps.author.id)){',它只會執行第二次檢查,如果兩者都是被定義。 –
你的代碼很好。但兩者都很好。 –
這些例子都不起作用。我可以看到,我兩次打這個函數,第一次props.author被填充,但nextProps.author是未定義的。第二次this.props.author未定義,但nextProp已填充。由於其中一個在每種情況下都缺失,我知道根本不設置作者狀態。 兩個想法,爲什麼我要兩次輸入這個函數,爲什麼componentWillReceiveProps的每個propportion都是空的? –