Tengo un pequeño proyecto de aplicación bajo ReactJs y, después de estudiar la pregunta, decidí usar una tienda diferente para cada instancia creada.
De hecho, de esta manera puedo instanciar múltiples componentes en la misma página de la siguiente manera:
var instance1 = new MyApp(".class1"); var instance2 = new MyApp(".class2");Y la clase MyApp se ve así:
class MyApp { constructor(myClass){ this.myClass = myClass; this.context= createContext("myClass"); this.init(); } init(){ render( <Provider context={this.context} store={createStore(this.myClass)}> <App /> </Provider>, document.querySelector(this.myClass) ); } destroy(){ render(null, document.querySelector(this.myClass)); } }¡Todo funciona correctamente! La única preocupación que encuentro es cómo proceder para recuperar la tienda de cada instancia de un ayudante de clase/función.
Digamos que creo una clase auxiliar como esta:
class Helper { constructor(myClass){ this.myClass = myClass; } getStore(){ // I have a function that allows me to find the corresponding store using the class of the instance return retrieveStore(this.myClass); } } export default Helper;Y que declaro un atributo en el constructor de la clase MyApp así, teniendo cuidado de importarlo por supuesto:
constructor(myClass){ this.myClass = myClass; this.context = createContext("myClass"); this.helper = new Helper("myClass"); // <-- Here this.init();}
Si hago esto:
var instance = new MyApp(".class1"); instance.helper.getStore();Obtengo la tienda correspondiente a la instancia.
Entonces, mi pregunta es, ¿cómo obtener la instancia de clase auxiliar correspondiente a la instancia actual de MyApp dentro de un componente React? Porque no puedo importar la clase, ya que solo inicializaré una nueva clase y no tendré la tienda correspondiente a la instancia actual de MyApp.