Skip to content

turinghunt-frontend


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

ClientMessage

返回

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 — 触发 GameAction
  • sendMessage — 向服务端发送 ClientMessage
  • setSendMessage — 由 useWebSocket 注入实际的发送函数(请勿在组件中调用)

参数

children

需要访问游戏上下文的子组件树

children

ReactNode

返回

Element


useGame()

ts
function useGame(): GameContextValue;

定义于: context/GameContext.tsx:86

访问游戏 Context 的自定义 Hook。

返回

GameContextValue

{ state, dispatch, sendMessage, setSendMessage }

抛出

当在 GameProvider 外部调用时抛出错误。

示例

tsx
function MyComponent() {
  const { state, sendMessage } = useGame();
  return <button onClick={() => sendMessage({ type: 'START_GAME', data: null })}>开始</button>;
}

TuringHunt Frontend