如何使用单个 index.jsx 导出 mobx 中的所有商店?

How To export all stores in mobx using single index.jsx?

我有以下商店文件结构:

user.jsx
notification.jsx
subscriber.jsx

每个导出一个默认商店。我想创建一个文件 index.jsx 以便我可以根据需要使用单个文件调用它们。

在 redux 中,可以使用 combineReducers 函数来实现该功能。

mobx有没有类似的选项?如果没有那我该如何实现呢?

你可以,例如在您的商店目录中创建一个 index.jsx 文件:

// stores/index.jsx
import user from './user.jsx';
import notification from './notification.jsx';
import subscriber from './subscriber.jsx';

const stores = {
  user,
  notification,
  subscriber
};

export default stores;

然后你可以用它来,例如将所有商店注入供应商:

// app.jsx
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'mobx-react';
import stores from './stores';

ReactDOM.render(
  <Provider {...stores}>
    {/* ... */}
  </Provider>
  document.getElementById('app')
);