
import { Button } from 'antd-mobile'
import { usePageContext, usePageData } from '../core/Context'
export default function C_Button ({ text = "啊啊啊" }) {
const title: any = usePageContext()
const dispatch = usePageData();
return <>
<Button block color='primary' size='large' >{text}</Button>
<Button block color='success' size='mini' onClick={() => dispatch({ text: "变化成功!!!!" })} >{title.text}</Button>
</>
}
import { createContext, useContext, useReducer } from "react";
const PageContext = createContext({})
const PageData = createContext({})
export function PageProvider({ children } : any) {
const [tasks, dispatch] = useReducer(
tasksReducer,
{ text: "这是初始化" }
);
return (
<PageContext.Provider value={tasks}>
<PageData.Provider value={dispatch}>
{children}
</PageData.Provider>
</PageContext.Provider>
);
}
export function usePageContext() {
return useContext( PageContext );
}
export function usePageData() {
return useContext( PageData );
}
export function tasksReducer(tasks: any, action: any) {
return { text: action.text }
}

context
的值来源于provider
上的value
属性。你的PageContext.Provider
的value
是tasks
也就是你usePageContext
得到的是这个值,而不是dispatch
这个函数