ContextContext
提供了一个无需为每层组件手动添加 props,就能在组件树间进行数据传递的方法
props: 只允许父子之间传递,context: 组件之间传递
API: React.createContext
创建一个 Context 对象。当 React 渲染一个订阅了这个 Context 对象的组件,这个组件会从组件树中离自身最近的那个匹配的 Provider 中读取到当前的 context 值。
只有当组件所处的树中没有匹配到 Provider 时,其 defaultValue 参数才会生效
Context.Provider
动态context
export const themes = {
light: {
foreground: '#000000',
background: '#eeeeee',
},
dark: {
foreground: '#ffffff',
background: '#222222',
},
};
export const ThemeContext = React.createContext( themes.dark // 默认值);
todoContext.item被todo.useState赋值的时候:
只有这种方法能被赋值,其他的不行,初始化之后就赋值失败
const temp_items = todo.items; // 必须先和todo相关一下
temp_items.userName = user? user.nickName:"none";
temp_items.playerNums = player_nums;
temp_items.password = room_password_create;
temp_items.loginSuccess = user? true:false;
todo.setItems(temp_items);
|