学习 React 看到了这个帖子 https://zhuanlan.zhihu.com/p/114292057
大概说的内容是用 mobx 创建了一个 TodoStore 实现了全局的状态管理。 问题在这里,既然用了 mobx 为何还要用 Provider?不是很明白。通过 observer 不是已经可以监听 store 的变化了吗?
下面是代码贴的是上面帖子里面的
// ./src/app.tsx
import React from 'react';
import { Provider } from 'mobx-react';
import Routers from './containers/routers';
import { stores, StoresContext } from './stores';
function App() {
return (
// 服务类组件
<Provider {...stores}>
{/* 服务函数组件 */}
<StoresContext.Provider value={stores}>
<Routers />
</StoresContext.Provider>
</Provider>
);
}
export default App;
// ./src/containers/todo-list-fn/index.tsx
import React from 'react';
import { observer } from 'mobx-react';
import { useTodoStore } from '../../stores';
function TodoListFnPage() {
const {
todos,
undoneCount,
doneCount,
addNewTodo,
removeById,
toggleStatusById
} = useTodoStore();
// 注意这里的 observer
export default observer(TodoListFnPage);