我有一個包含類組件的類。通過支柱使用ReactJS將函數傳遞給子組件
當我提供一個onClick道具的使用,並試圖通過一個功能,我得到以下錯誤:
AddForm.js:74遺漏的類型錯誤:_this3.props.onClick不是一個函數
代碼:
export default class Company extends React.Component {
constructor(props) {
super(props);
this.state = {
\t \t AddOrView: <AddForm header="Add User" formFields={this.fields} />,
\t \t users: this.props.initialUsers
\t }
}
handleAdd() {
console.log('Hello World');
}
render() {
return (
<AddWithTitle onClick={e => this.setState({
\t AddOrView: <AddForm header="Add User"
formFields={this.fields}
\t \t \t \t formResponses=""
\t \t \t \t onClick={this.handleAdd} />
\t \t \t \t \t })
\t \t \t } src="blah.png">
\t Add User</AddWithTitle>
);
}
}
export default class AddForm extends React.Component {
render() {
return(
<button className="btn btn-primary"
\t \t \t \t formResponses={this.state.fieldValues}
\t \t \t \t onClick={() => this.props.onClick()} >
\t \t \t \t Save
\t \t </button>
);
}
};
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
謝謝您的幫助:)
爲什麼你有兩個'公司'類。你不能在一個類的定義中創建道具,然後希望當你試圖重新定義道具出現時。只需將這兩個渲染函數合併到頂層定義中,並使用點擊處理程序定義本身代替道具 – Chase
對不起,錯誤的類,只是編輯,它應該是AddForm。不是問題的根源。 – Sequential
我不確定你爲什麼在你的渲染返回函數中使用set state,但是把所有你要做的就是在你的狀態下在'Company'返回函數中加入 jsx ...你永遠不會實際渲染' '你是否定義了 '某處? –
Chase