¿Cuál es la forma correcta de inyectar varias tiendas en una escena? No pude encontrar ningún ejemplo sobre esto. Todos inyectan solo una tienda en una escena. ¿Existe una regla o concepto en el modelo de Asp.net sobre el uso de tiendas con mobx-react?
inyección al componente
import RefineryStore from '../../stores/refineryStore'; import Stores from '../../stores/storeIdentifier'; import UserStore from '../../stores/userStore'; export interface IRefineryProps { refineryStore: RefineryStore; userStore: UserStore; } @inject(Stores.RefineryStore, Stores.UserStore) // Why noone adds two stores into one inject? @observer class Refineries extends AppComponentBase<IRefineryProps, IRefineryState> { public render() { const { refineries } = this.props.refineryStore; const { managers } = this.props.userStore; return () } }Definición de clase de Tiendas
export default class Stores { static AuthenticationStore: string = 'authenticationStore'; static RoleStore: string = 'roleStore'; static TenantStore: string = 'tenantStore'; static UserStore: string = 'userStore'; static SessionStore: string = 'sessionStore'; static AccountStore: string = 'accountStore'; static RefineryStore: string = 'refineryStore'; }Está totalmente bien inyectar varias tiendas si las necesita. Incluso puede tener RootStore que combina todo e inyecta cada tienda en cada componente, por ejemplo.
El enfoque moderno sería usar ganchos como se describe en este documento
De esa manera, sus componentes se verían mucho más simples:
const Refineries = observer(() => { const { refineryStore, userStore } = useStores() return ( <div> ... </div> ) }) Aunque requeriría que use componentes funcionales en lugar de clase, por lo que es posible que desee seguir inject si tiene una gran aplicación heredada y no tiene mucho tiempo para refactorizar.