我有組件按鈕和2個函數。按鈕組件用於各種組件。對於某些需要onclick事件的函數,對於其他 - 秒。如何更改onclick事件的功能?我正在使用this answer,但總是在我的組件中未定義。更改組件反應js的onClick函數?
export default class MyButtonComponent extends Component {
constructor(props) {
super(props);
propTypes: {
onClick: PropTypes.func
};
this.state = { loading: false, api_url: "http://localhost:8000" };
}
static get DefaultProps() {
return {
onClick: this.firstFunction(event)
}
}
firstFunction(){
/*some code*/
}
secondFunction(){
/*some code*/
}
render() {
return (
<LaddaButton
loading={this.state.loading}
onClick={this.props.onClick}
className='submit'
data-color="#eee"
data-style={SLIDE_UP}
data-spinner-size={30}
data-spinner-color="#ddd"
data-spinner-lines={12}
data-url={this.props.url}
>
Отправить
</LaddaButton>
);
}
而在另一個組件:
<FormGroup>
<Col mdOffset={5} md={7}>
<MyButtonComponent onClick={this.secondFunction} data-url="someurl.com"></MyButtonComponent>
</Col>
</FormGroup>
也試過添加
onClick={e => this.secondFunction(e)}
到按鈕componentm但總是得到錯誤
_this2.secondFunction is not a function
是'secondFunction'在定義了''的父組件中定義的? –
否,從另一個組件中構建組,在按鈕組件中定義的第二個功能。 –
'secondFunction'不應該在MyButtonComponent中定義,它應該在父組件中定義 –