Est-il possible dans React de passer tous les événements à l'élément enfant.
à titre d'exemple, j'ai une classe de bouton personnalisée, qui (simplifiée) ressemble à quelque chose comme ceci :
class Button extends Component {
constructor (props) {
super(props);
this.onClick = this.onClick.bind(this);
}
/* .... */
onClick (ev) {
const { disabled, onClick } = this.props;
if (!disabled) {
onClick(ev);
}
}
render () {
const {
children,
disabled,
type
} = this.props;
return (
<button
disabled={disabled}
onClick={this.onClick}
ref="button"
type={type}
>{children}</button>
}
}
Je ne sais pas quels événements je pourrais vouloir utiliser à l'avenir (onMouseDown, onMouseUp, onBlur, onKeyDown, onTouchStart, et ainsi de suite...).
Est-il possible de transmettre tous les événements possibles à l'élément button sans écrire un prop pour chaque événement possible ?
L'ajout de {...this.props} à l'élément bouton n'est pas ce que je veux parce qu'il transmet tous les props et que certains props (comme className qui est omis dans cet exemple) ne devraient pas être transmis directement.
J'ai pensé à cloner l'objet props et à supprimer les props qui ne devraient pas être transmis directement, mais cela ressemble à un hack. Quelqu'un connaît-il une méthode plus propre ?