turinghunt-frontend / context/GameContext
context/GameContext
接口
GameContextValue
定义于: context/GameContext.tsx:8
GameContext 的 Context Value 类型,包含游戏状态与核心操作方法。
属性
dispatch
ts
dispatch: Dispatch<GameAction>;定义于: context/GameContext.tsx:10
sendMessage
ts
sendMessage: (msg) => void;定义于: context/GameContext.tsx:11
参数
msg
返回
void
setSendMessage
ts
setSendMessage: (fn) => void;定义于: context/GameContext.tsx:12
参数
fn
(msg) => void
返回
void
state
ts
state: GameState;定义于: context/GameContext.tsx:9
函数
GameProvider()
ts
function GameProvider(children): Element;定义于: context/GameContext.tsx:30
游戏数据提供者。
应被提升到游戏页面所有组件的公共父级(app/game/page.tsx)。 内部使用 useReducer 持有 GameState,并对外暴露以下 API:
state— 完整游戏状态快照(只读)dispatch— 触发 GameActionsendMessage— 向服务端发送 ClientMessagesetSendMessage— 由useWebSocket注入实际的发送函数(请勿在组件中调用)
参数
children
需要访问游戏上下文的子组件树
children
ReactNode
返回
Element
useGame()
ts
function useGame(): GameContextValue;定义于: context/GameContext.tsx:86
访问游戏 Context 的自定义 Hook。
返回
{ state, dispatch, sendMessage, setSendMessage }
抛出
当在 GameProvider 外部调用时抛出错误。
示例
tsx
function MyComponent() {
const { state, sendMessage } = useGame();
return <button onClick={() => sendMessage({ type: 'START_GAME', data: null })}>开始</button>;
}