1
這是我的組件無法讀取的未定義的屬性「toObject」當試圖調用FUNC財產
class MyComponent extends Component {
render() {
const { action } = this.props;
action();
return (<div>Done!</div>);
}
MyComponent.propTypes = {
action: PropTypes.func.isRequired
}
這裏是一個容器的相關代碼:
doSomething() {
...
}
render() {
return (
<MyComponent
action={doSomething}
/>
)
}
當我打開這段代碼在瀏覽器中,我得到了這個錯誤信息:
Uncaught TypeError: Cannot read property 'toObject' of undefined
業務邏輯應該活在容器中,所以我不想警察y並將action
的代碼粘貼到MyComponent
中。
所以我的問題是:如何在render
方法中直接調用通過屬性傳入的函數?
PLS顯示action'的'代碼。錯誤似乎發生在'action'內,這意味着'action'被調用。 – Panther
@Ved如何操作this.props,他使用的是{action} = this.props',這就是所謂的'destructuring',該語法是正確的。 –
@Panther你是對的。這個異常是在'action'函數內引發的。直到我將一個調試器語句放入函數中,它才從棧跟蹤中顯而易見。請讓你的評論成爲答案,我會接受。 –