In modern React, mixins are generally deprecated in favor of using Hooks and higher-order components (HOCs). However, if you still need to bind events in the context of mixins, here’s the best approach for doing it with React class components using a mixins pattern.
Best Approach: Use this.handleEvent = this.handleEvent.bind(this) in Mixin
The most straightforward way to bind events from a mixin is to bind the event handler methods inside the mixin before they are used in the class.
Example Using Mixins in React (Class Components)
Create a Mixin with Event Handlers:
// MyMixin.js
const MyMixin = {
  componentDidMount() {
    console.log("Mixin componentDidMount");
  },
  handleClick() {
    console.log("Button clicked from mixin!");
  },
};
export default MyMixin;
Use the Mixin in a React Class Component:
import React, { Component } from "react";
import MyMixin from "./MyMixin";
class MyComponent extends Component {
  constructor(props) {
    super(props);
    // Bind event handler in constructor
    this.handleClick = this.handleClick.bind(this);
  }
  // Mixins will be applied here
  componentDidMount() {
    console.log("ComponentDidMount from component");
    if (this.componentDidMount) this.componentDidMount(); // Call mixin method
  }
  handleClick() {
    console.log("Button clicked from component!");
  }
  render() {
    return (
      <div>
        <button onClick={this.handleClick}>Click Me</button>
      </div>
    );
  }
}
Object.assign(MyComponent.prototype, MyMixin); // Assign mixin to class prototype
export default MyComponent;