Мне сказали, что это очень плохая практика, но мне любопытно узнать, можно ли иметь динамические обработчики в React. Рассмотрим приведенный ниже код. Я хотел бы вызвать соответствующий обработчик на основе значения props
. То есть, при нажатии кнопки редактирования щелкнула обработчик редактирования вызывается и т.д. Это не работает прямо сейчас жалуется, что ...expected function but string provided...
Возможно ли иметь динамические обработчики событий в React?
import React from 'react';
import ReactDOM from 'react-dom';
export default class HelloWorld extends React.Component{
render() {
return(
<div>
<h4>Hello World</h4>
<MyButton txt="edit" />
<MyButton txt="insert" />
</div>
);
}
};
export default class MyButton extends React.Component{
edit() {
console.log('edit button clicked');
}
insert() {
console.log('insert button clicked');
}
render(){
return (
//Trigger handler based on this.props.txt
<button onClick={this.props.txt}>{this.props.txt}</button>
)
}
}
ReactDOM.render(<HelloWorld/>, document.getElementById('hello'));